当某些数字包含逗号作为千分隔符时,如何读取数据?

当某些数字包含逗号作为千分隔符时,如何读取数据?

我有一个CSV文件,其中一些数值表示为字符串,逗号作为千分隔符。"1,513"而不是1513..将数据读入R的最简单方法是什么?

我可以用read.csv(..., colClasses="character")但是,在将这些列转换为数字之前,我必须从相关元素中去掉逗号,而且我找不到一种简洁的方法来做到这一点。


隔江千里
浏览 821回答 3
3回答

慕容森

不知道该怎么做read.csv正确地解释它,但是您可以使用gsub取代","带着"",然后将字符串转换为numeric使用as.numeric:y&nbsp;<-&nbsp;c("1,200","20,000","100","12,111")as.numeric(gsub(",",&nbsp;"",&nbsp;y))#&nbsp;[1]&nbsp;&nbsp;1200&nbsp;20000&nbsp;100&nbsp;12111这是也曾在R-Help上回答过(以及在Q2在这里).或者,您也可以对文件进行预处理,例如使用sed在Unix。

慕哥6287543

我想使用R,而不是预处理数据,因为它使它更容易,当数据被修改。按照Shane的建议gsub,我认为这是我所能做到的最整洁的事情:x&nbsp;<-&nbsp;read.csv("file.csv",header=TRUE,colClasses="character")col2cvt&nbsp;<-&nbsp;15:41x[,col2cvt]&nbsp;<-&nbsp;lapply(x[,col2cvt],function(x){as.numeric(gsub(",",&nbsp;"",&nbsp;x))})
打开App,查看更多内容
随时随地看视频慕课网APP