R中的readHTMLTable在for循环中抛出警告

时间:2014-09-03 14:15:09

标签: html xml r

您好我有5个html源代码,我想在每个源代码上运行readHTMLTable并存储结果。我可以使用以下方式单独执行此操作:

readHTMLTable(iso.content[1],which=6)
readHTMLTable(iso.content[2],which=6)
.
.

但是当把它放到for循环中时,我得到:

library(XML)
> iso.table<-NULL
> for (i in 1:nrow(gene.iso)) { 
+ iso.table[i]<-readHTMLTable(iso.content[i],which=6)
+ }
Warning messages:
1: In iso.table[i] <- readHTMLTable(iso.content[i], which = 6) :
  number of items to replace is not a multiple of replacement length
2: In iso.table[i] <- readHTMLTable(iso.content[i], which = 6) :
  number of items to replace is not a multiple of replacement length
3: In iso.table[i] <- readHTMLTable(iso.content[i], which = 6) :
  number of items to replace is not a multiple of replacement length
4: In iso.table[i] <- readHTMLTable(iso.content[i], which = 6) :
  number of items to replace is not a multiple of replacement length
5: In iso.table[i] <- readHTMLTable(iso.content[i], which = 6) :
  number of items to replace is not a multiple of replacement length

所以我可以单独执行此操作,但不使用for循环。我的目标不是用下一次迭代替换当前数据,所以我不确定为什么警告会出现这种情况。

任何想法?

1 个答案:

答案 0 :(得分:2)

错误与readHTMLTable无关;一切都与iso.table有关。我不确定你想要什么类型的对象,但如果你想存储一堆data.frames,你将需要一个列表。当您将对象分配到列表时,您希望将它们放在[[ ]]而不是[ ]。尝试

iso.table <- list()
for (i in 1:nrow(gene.iso)) { 
    iso.table[[i]] <- readHTMLTable(iso.content[i],which=6)
}