您好我有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
循环。我的目标不是用下一次迭代替换当前数据,所以我不确定为什么警告会出现这种情况。
任何想法?
答案 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)
}