在R中如何替换非数字列表中的逗号?

问题描述 投票:0回答:1

我在R中有一个data.frame,它也是一个列表。我想用". "代替数字中的","。data.framework不是数字的,但我认为它必须是能够改变小数点分隔符的。

我试了很多,但都没有用。我不想重新排列或操作我的data.frame。我只想把十进制数字中的", "去掉。

df <- data.frame(colnames(c("a","b","c")),"row1"=c("2,3","6"),"row2"=c("56,0","56,8"),"row3"=c("1",0"))

#trials to make df numeric and change from , to .

as.numeric(str_replace_all(df,",","."))
as.numeric(unlist(df[ ,2:3]))
lapply(df, as.numeric)
as.numeric(gsub(pattern = ",",replacement = ".",df[ ,2:3]))
as.numeric(df$a)

对于这个讨厌的问题,我还能做什么?

r dataframe numeric
1个回答
0
投票

我猜你读错了数据(你可以指定 dec = ","),同时读取数据)。)

您可以在读取数据时使用 gsub 取代逗号(,)与点(.),并将其转化为数字型。

df[] <- lapply(df, function(x) as.numeric(gsub(',', '.', x)))

0
投票

我们也可以使用 mutate_all

library(dplyr)
library(stringr)
df %>%
    mutate_all(~ as.numeric(str_replace(., ",", ".")))
© www.soinside.com 2019 - 2024. All rights reserved.