我正试图从网站上搜集一堆表格。我希望能够将它们全部存储在一个或多个变量中 - 基本上是为了方便访问。 下面的代码就是我到目前为止所使用的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
}
任何帮助将不胜感激。
答案 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)
如你所见,它也更简洁。