删除逗号(R中的千位分隔符)

时间:2019-12-18 15:44:09

标签: r formatting comma read.csv

我需要将一堆.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文件中数据外观的示例: enter image description here

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的数字的问题。

感谢您的想法和帮助!

1 个答案:

答案 0 :(得分:4)

我们可以使用sub来摆脱第一个,

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

仅在代码中只有一个,的情况下,它才会离开,

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