用逗号操纵值

时间:2010-08-16 15:34:28

标签: r

  

可能重复:
  How can I declare a thousand separator in read.csv?

我实际上有一个解决这个问题的方法,但我很好奇是否有更好的方法来做我想做的事情。

我从majorleaguesoccer.com上删除了一些数据并使用

将其读入R中
mls.reg.tmp <- read.table("../data/mls_reg_season_20100812.csv",
                          header = F, sep = ";")

请注意,我使用了sep =“;”因为一些出席人数在网站上的成千上万和我“按原样”刮下,例如,

> str(mls.reg.dat$a_tot)
 Factor w/ 164 levels " 166,060"," 171,282",..: 132 45 159 153 46 160 
158 148 150 98 ...

事后看来,我应该在这个项目的预处理步骤中删除python中的逗号。我还应该指出数据集中也有一些文本字段。

> str(mls.reg.dat$team)
 Factor w/ 20 levels "Chicago Fire",..: 4 9 19 11 3 10 13 16 5 6 ...

鉴于我想将考勤数据用作数值,我使用as.numeric和gsub进行转换。作为调用ggplot的一个例子:

ggplot(data = mls.reg.dat, aes(x = as.numeric(gsub(",", "", 
  mls.reg.dat$a_tot)), y = sog)) + geom_point() + 
  facet_wrap(~ team)

问题:这是处理此类数据的最有效方式吗?或者是否有专门的功能来做这些事情?

我在这里发布这个问题,因为我花了很多时间(> 30分钟)只是在这个简单的解决方案中工作,并认为其他人也可能从中受益。

1 个答案:

答案 0 :(得分:1)

我不知道任何专门的功能,但你可以在阅读数据时直接进行。

  data <- read.table(...)
  data$someColumn <- as.numeric(gsub(",", "", data$someColumn))

可以使用data$someColumn进行任何后续调用,无需进一步转换(以及更易于阅读的代码)

编辑:似乎与"How can I declare a thousand separator in read.csv?"

重复