2014-09-29 77 views
0

我想从以下网址读取表多余的东西:返回函数read.table在最后一列

url <- 'http://faculty.chicagobooth.edu/ruey.tsay/teaching/introTS/m-ge3dx-4011.txt' 
da <- read.table(url, header = TRUE, fill=FALSE, strip.white=TRUE) 

我可以看一下数据使用head

> head(da) 
     date  ge  vw  ew  sp 
1 19400131 -0.061920 -0.024020 -0.019978 -0.035228 
2 19400229 -0.009901 0.013664 0.029733 0.006639 
3 19400330 0.049333 0.018939 0.026168 0.009893 
4 19400430 -0.041667 0.001196 0.013115 -0.004898 
5 19400531 -0.197324 -0.220314 -0.269754 -0.239541 
6 19400629 0.061667 0.066664 0.066550 0.076591 

这工作正常例如,我可以看看列ew

> head(da$ew) 
[1] -0.019978 0.029733 0.026168 0.013115 -0.269754 0.066550 

但是当我尝试访问最后一个时,我得到了一些不在txt文件中的额外输出。

> head(da$sp) 
[1] -0.035228 0.006639 0.009893 -0.004898 -0.239541 0.076591 
859 Levels: -0.000060 -0.000143 -0.000180 -0.000320 -0.000659 -0.000815 ... 0.163047 

如何摆脱额外的输出?谢谢!

回答

0

这是一个因子的表示。

> str(da) 
'data.frame': 861 obs. of 5 variables: 
$ date: int 19400131 19400229 19400330 19400430 19400531 19400629 19400731 19400831 19400930 19401031 ... 
$ ge : num -0.0619 -0.0099 0.0493 -0.0417 -0.1973 ... 
$ vw : num -0.024 0.0137 0.0189 0.0012 -0.2203 ... 
$ ew : num -0.02 0.0297 0.0262 0.0131 -0.2698 ... 
$ sp : Factor w/ 859 levels "-0.000060","-0.000143",..: 226 411 445 42 353 828 613 585 441 684 ... 

第58行有一个点而不是数字。这是R将处理该变量作为一个因素的足够信息。将点更改为NA或修复错误后,您将能够正确读入数据。

另一种选择是将数据读入后将其改为有意义的数据,然后再强制转换为数字。以下声明将强制执行。到NA。

da$sp <- as.numeric(as.character(da$sp)) 
> str(da) 
'data.frame': 861 obs. of 5 variables: 
$ date: int 19400131 19400229 19400330 19400430 19400531 19400629 19400731 19400831 19400930 19401031 ... 
$ ge : num -0.0619 -0.0099 0.0493 -0.0417 -0.1973 ... 
$ vw : num -0.024 0.0137 0.0189 0.0012 -0.2203 ... 
$ ew : num -0.02 0.0297 0.0262 0.0131 -0.2698 ... 
$ sp : num -0.03523 0.00664 0.00989 -0.0049 -0.23954 ...