删除逗号,它是 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"
我需要将一堆 .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"