2015-04-24 79 views
0

我正在閱讀HTML表格,並且可以做到這一點,但我正在收集多年來的表格。不幸的是,每一行的列和行都是不同的,所以我想將它們全部遞歸地添加到列表中,以便稍後應用lapply並進行一些分析。通過循環將表格添加到R中的列表

我可以下載表格並將其操作到數據框中,但是當我將其添加到列表中時,列表只接受第一列。

library(XML) 
#reg 
r=readHTMLTable('http://www.nhl.com/stats/team?season=20132014&gameType=2&viewName=summary#',stringsAsFactors=FALSE) 
r=as.data.frame(r[3]) 
for(i in 3:ncol(r)){ 
    r[,i]=as.numeric(r[,i]) 
} 

這給了我r我可以操縱的東西。我想將它添加到列表:

> l=as.list(NULL) 
> l[1]=r 
Warning message: 
In l[1] = r : 
    number of items to replace is not a multiple of replacement length 
> l 
[[1]] 
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" 
[16] "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" 

有誰知道我可以將其添加到我的列表,所以我把尺寸

> dim(r) 
[1] 30 25 

的問題是,我有很多其他表,我想添加,並能夠添加它們,但每個添加的只包含第一列/元素。

任何想法不勝感激

謝謝!

回答

0

多一點研究,我找到了答案。我感到內疚,但在這裏它是:

l[[1]]=r 

添加表R鍵列表,也可以完成遞歸