2015-01-05 4 views
2

이것은 여러 개의 주식에 대한 배당 자료를 각각 별도의 변수에 다운로드합니다. R 데이터 파일 이름은 주식의 이름 다음에 ".div"가옵니다. 즉, Microsoft의 경우 파일은 "MSFT.div"입니다. quantmod의 배당 파일

require(quantmod) 
DJ30_symbols.ls <- c("MSFT", "IBM") 
nDiv <- length(DJ30_symbols.ls) 
for (i in 1:nDiv) { 
    cat("Downloading ", i, " out of ", nDiv, "\n") 
    getDividends(DJ30_symbols.ls[i], from = "1970-01-01", to = Sys.Date()) 
} 

난 내 작업 디렉토리에 CSV 파일로 개별 파일을 저장하려고

다음과 같이

write.zoo(paste(DJ30_symbols.ls[i], ".div", sep=' '), 
    file = paste(DJ30_symbols.ls[i], ".csv", sep=''), index.name = "date") 

내가 파일을 저장하지만, 저장된 데이터는 야후에서 다운로드 한 배당금 아니라, 기호 이름 (예 : "MSFT.div").

write.zoo(MSFT.div, file = "MSFT_div.csv", index.name = "date") 

내가 파일을 데이터를 읽고 저장하는 변수 이름을 사용할 수있는 방법이 있나요 : 내가 할 경우 내가 csv 파일의 다운로드 배당 정보를 얻을?

답변

0

코드 paste(DJ30_symbols.ls[i], ".div", sep=' ')은 배당 데이터가 포함 된 개체가 아닌 문자열입니다. 해당 이름의 객체를 검색하려면 get을 사용할 수 있지만 getDividendsauto.assign 객체가 아닌 객체를 반환 한 경우 더 쉬울 것입니다.

require(quantmod) 
DJ30_symbols.ls <- c("MSFT", "IBM") 
for (i in seq_along(DJ30_symbols.ls)) { 
    cat("Downloading ", i, " out of ", nDiv, "\n") 
    obj <- getDividends(DJ30_symbols.ls[i], from="1970-01-01", auto.assign=FALSE) 
    write.zoo(obj, paste0(DJ30_symbols.ls[i], ".csv"), index.name="date") 
}