我正在阅读HTML表格,并且可以做到这一点,但我正在收集多年的表格。不幸的是,每年的列和行都不同,所以我想将它们全部递归地添加到列表中,以便稍后我可以应用lapply并进行一些分析。
我可以下载表并在我执行一次操作时将其操作到数据框中,但是当我将其添加到列表中时,列表只接受第一列。
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])
}
这给了我一些我可以操纵的东西。我想将它添加到列表中:
> 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 :(得分:0)
多一点研究,我找到了答案。我为此感到内疚,但现在是:
l[[1]]=r
将表r添加到列表中,也可以递归地完成