删除逗号,它是 R 中的千位分隔符

Remove comma which is a thousands separator in R

我需要将一堆 .csv 文件导入 R。我使用以下代码执行此操作:

Dataset <- read.csv(paste0("./CSV/State_level/",file,".csv"),header = F,sep = ";",dec = "," ,  stringsAsFactors = FALSE)

输入的是一个 .csv 文件,以“,”作为小数位的分隔符。不幸的是,有很多条目如下:20,012,054。 这实际上应该是:20012,054 并导致 NA,但通常整个 df 被导入为字符而不是我想要的数字。

当从左到右看时,只有当数字在小数点逗号前面有超过 3 个数字时,如何去掉第一个“,”?

以下是数据在 .csv 文件中的外观示例:

一个 data.frame 可能看起来像这样:

df<-data.frame(a=c(0.5,0.84,12.25,"20,125,25"), b=c("1,111,054",0.57,105.25,0.15))

我用了“.”在这种情况下作为小数分隔符使其成为一个数字,在 .csv 中是一个“,”,但这对于格式为 123,45.

的数字来说不是问题

感谢您的想法和帮助!

我们可以用sub去掉第一个,

df[] <-  lapply(df, function(x) sub(",(?=.*,)", "", x, perl = TRUE))

如果代码中只有一个 ,,它会留下 ,

sub(",(?=.*,)", "", c("0,5", "20,125,25"), perl = TRUE)
#[1] "0,5"      "20125,25"