Я пытаюсь написать цикл для выполнения readHTMLTable()
над списком последовательных дат, которые я предоставляю по формуле. Я успешно импортировал все данные между датами. Однако эти данные не содержат столбца даты, поэтому, используя последовательность дат, я предоставляю цикл, я бы хотел, чтобы цикл читалHTMLTable, а затем добавил новый столбец с датой, используемой для этой итерации.Используйте readHTMLTable над списком дат и создайте новую колонку даты с данными
Вот то, что я до сих пор:
library(XML)
library(RCurl)
library(plyr)
# create the days
x <- seq(as.Date("2015-04-10"), as.Date("2015-04-15"), by = "day")
# create a url template for sprintf()
utmp <- "http://www.basketball-reference.com/friv/dailyleaders.cgi?month=%d&day=%d&year=%d"
# convert to numeric matrix after splitting for year, month, day
m <- do.call(rbind, lapply(strsplit(as.character(x), "-"), type.convert))
# create the list to hold the results
tables <- vector("list", length(m))
# get the tables
for(i in seq_len(nrow(m))) {
# create the url for the day and if it exists, read it - if not, NULL
tables[[i]] <- if(url.exists(u <- sprintf(utmp, m[i, 2], m[i, 3], m[i, 1])))
readHTMLTable(u, stringsAsFactors = FALSE)
else NULL
}
data <- ldply(tables,data.frame)
Так в принципе, я хотел бы мой последний кадр данных, чтобы показать m
как новый столбец с названием что-то вроде data$Date
.
Спасибо за любую помощь и сообщите мне, если вам нужно какое-либо разъяснение!
Без 'Sys.sleep' в цикле вы нарушаете [условия обслуживания] сайта (http://www.sports-reference.com/termsofuse.shtml). – hrbrmstr