2014-09-29 75 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 ...