为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

隔江千里 2019-06-21 17:35:28
当某些数字包含逗号作为千分隔符时,如何读取数据?我有一个CSV文件,其中一些数值表示为字符串,逗号作为千分隔符。"1,513"而不是1513..将数据读入R的最简单方法是什么?我可以用read.csv(..., colClasses="character")但是,在将这些列转换为数字之前,我必须从相关元素中去掉逗号,而且我找不到一种简洁的方法来做到这一点。
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

不知道该怎么做read.csv正确地解释它,但是您可以使用gsub取代","带着"",然后将字符串转换为numeric使用as.numeric:

y <- c("1,200","20,000","100","12,111")as.numeric(gsub(",", "", y))# [1]  1200 20000 100 12111

这是也曾在R-Help上回答过(以及在Q2在这里).

或者,您也可以对文件进行预处理,例如使用sed在Unix。


查看完整回答
反对 回复 2019-06-21
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

我想使用R,而不是预处理数据,因为它使它更容易,当数据被修改。按照Shane的建议gsub,我认为这是我所能做到的最整洁的事情:

x <- read.csv("file.csv",header=TRUE,colClasses="character")col2cvt <- 15:41x[,col2cvt] <- lapply(x[,col2cvt],function(x){as.numeric(gsub(",", "", x))})


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 808 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信