2016-01-06 4 views
0

Я пытаюсь отбросить всю информацию о ценах на историю для списка компаний ASX200. Я имею в виду, что используемый мной R-кадр данных перезаписывается (вместо добавления в). Таким образом, мой последний файл данных содержит только данные последнего тиккера ASX200. Плз см. Попытку ниже:Помощь, необходимая для добавления к существующему объекту Frame Data Data

library(XML) 

url <- "http://www.asx200list.com" 
getASX200 <- readHTMLTable(url, which=1, header = TRUE) 
codes <- getASX200$Code 
codes <- lapply(codes, as.character) 

for (i in 1:200) { 
    URL2 <- paste("http://ichart.finance.yahoo.com/table.csv?s=", codes[i], ".AX", sep = "") 
    dat <- read.csv(URL2) 
    dat$Date <- as.Date(dat$Date, "%Y-%m-%d") 
    dat$Code <- codes[i] 
} 
+0

Сохранить все в 'list' (' L' сказать) вместо 'dat' - объявим его как' L <- вектор ("список", длина = 200) 'вне вашего 'for', затем используйте' L [i] 'с правой стороны и присвойте ему' dat' в последней строке. – thelatemail

+0

Привет, спасибо за ваш ответ. Не будет ли этот список (L) предоставлять только 200 строк данных? Ответ для каждой итерации будет составлять тысячи строк. Возможно, я неправильно понял? – Nick

+0

'list' может содержать что угодно, они не являются квадратной сеткой, как традиционные наборы данных. 'L' будет содержать 200' data.frames', например 'dat', которые вы можете получить, например,' L [[1]] ' – thelatemail

ответ

2

Сборный список немного сложный. Вот пример:

library(XML) 

url <- "http://www.asx200list.com" 
getASX200 <- readHTMLTable(url, which=1, header = TRUE) 
codes <- getASX200$Code 
codes <- lapply(codes, as.character) 


datList <- list() 

for (i in 1:200) { 
    URL2 <- paste("http://ichart.finance.yahoo.com/table.csv?s=", codes[i], ".AX", sep = "") 
    dat <- read.csv(URL2) 
    dat$Date <- as.Date(dat$Date, "%Y-%m-%d") 
    dat$Code <- codes[i] 

    datList <- c(datList, list(dat)) 
} 

print(head(datList[[1]])) 
+0

Отлично. Спасибо. – Nick

Смежные вопросы