我在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)
对于这个讨厌的问题,我还能做什么?
我猜你读错了数据(你可以指定 dec = ","
),同时读取数据)。)
您可以在读取数据时使用 gsub
取代逗号(,
)与点(.
),并将其转化为数字型。
df[] <- lapply(df, function(x) as.numeric(gsub(',', '.', x)))
我们也可以使用 mutate_all
library(dplyr)
library(stringr)
df %>%
mutate_all(~ as.numeric(str_replace(., ",", ".")))