如何在R中创建向量或表列表

时间:2013-01-01 11:23:22

标签: r web-scraping

我正试图从网站上搜集一堆表格。我希望能够将它们全部存储在一个或多个变量中 - 基本上是为了方便访问。 下面的代码就是我到目前为止所使用的XML代码,我发现它在单个表上运行良好,但不能让它适用于多个表。

i <- 1
N <- 3
DSFL1<- 'http://website/results/2012_aussies_thu/results/'
DSFL2 <- '.html'
SportHTML <- vector(length=N)
vectorOfTables <- vector(length=N)

for ( i in i:N) {
  DSVL <- i
  SportHTML[i] <- paste(DSFL1,DSVL,DSFL2, sep="")
  Sport.table <- readHTMLTable(SportHTML[i], header=T, which=3,stringsAsFactors=F) 
  vectorOfTables[1] <- Sport.table
  i <- i + 1
  }

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:7)

您的桌子是长度为&gt的对象; 1(可能有不同的长度),他们必须进入列表。所以你应该这样做:

vectorOfTables <- vector(mode = "list", length = N)

当你在循环中分配时,执行:

vectorOfTables[[i]] <- Sport.table

但是,您可以避免for循环并使用lapply创建列表:

SportHTML    <- paste0(DSFL1, 1:N, DSFL2)
ListOfTables <- lapply(SportHTML, readHTMLTable, header = TRUE,
                       which = 3, stringsAsFactors = FALSE)

如你所见,它也更简洁。