【发布时间】:2015-01-10 23:43:01
【问题描述】:
首先,提前感谢您的任何回复。
我需要通过在各自的网页中加入一些较小的表格来获取表格。迄今为止,我已经能够提取信息,但未能使用循环自动完成。 迄今为止,我的命令是:
library(RCurl)
library(XML)
# index <- toupper(letters)
# EDIT:
index <- LETTERS
index[1] <- "0-A"
url <- paste("www.citefactor.org/journal-impact-factor-list-2014_", index, ".html", sep="", collapse=";")
urls <- strsplit(url, ";") [[1]]
这是我的循环尝试:
read.html.tab <- function(url){
require(RCurl)
require(XML)
uri <- url
tabs <- NULL
for (i in uri){
tabs <- getURL(uri)
tabs <- readHTMLTable(tabs, stringsAsFactors = F)
tab1 <- as.data.frame(tabs)
}
tab1
}
如果我尝试使用read.html.tab 函数:
tab0 <- read.html.tab(urls)
我收到以下错误:
Error in data.frame(`Search Journal Impact Factor List 2014` = list(`0-A` = "N", : arguments imply differing number of rows: 1, 1100, 447, 874, 169, 486, 201, 189, 172, 837....
但是,如果urls 只有一个元素,则该函数有效:
tabA <- read.html.tab(urls[1])
tabB <- read.html.tab(urls[2])
tab.if <- rbind(tabA,tabB)
ifacs <- tab.if[,27:ncol(tab.if)]
View(ifacs)
看来我不明白循环是如何工作的......
【问题讨论】:
标签: r for-loop web-scraping rcurl