2015-04-24 82 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键列表,也可以完成递归