通过循环将表添加到R中的列表

时间:2015-04-24 13:33:57

标签: r list dataframe

我正在阅读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

问题是,我有很多其他的表要添加,并且能够添加它们,但每个添加的表只包含第一列/元素。

非常感谢任何想法

谢谢!

1 个答案:

答案 0 :(得分:0)

多一点研究,我找到了答案。我为此感到内疚,但现在是:

l[[1]]=r

将表r添加到列表中,也可以递归地完成