我在將股票定價數據導入到R時遇到了一些問題。我有超過4k個符號的列表,有些不再有效/有效。我在列表中使用了一個名爲get.hist.quote的lapply,但是一些糟糕的收單機構太多地阻止了它,因爲它不是一個實用的方法。以下這篇文章:l_ply: how to pass the list's name attribute into the function?並試圖使用接受的答案是我能找到的看似最好的方法,但它不起作用。 l_ply不會將任何符號加載到我的工作區中。我得到這些警告:getSymbols沒有按預期返回數據
Warning messages:
1: In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m, :
downloaded length 90279 != reported length 200
2: In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m, :
downloaded length 87827 != reported length 200
3: In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m, :
downloaded length 89737 != reported length 200
上面引用的我試圖使用的代碼如下。有沒有解決這個問題?我看到有關類似情況的其他帖子,但是像這樣的修復程序並不適合我。如果其他人有一個很好的方式讓我獲得很多代碼的日常數據,我願意接受所有建議。提前致謝。
library(quantmod)
library(plyr)
symbols <- c("MSFT","C","MMM")
#1
l_ply(symbols, function(sym) try(getSymbols(sym)))
symbols <- symbols[symbols %in% ls()]
#2
sym.list <- llply(symbols, get)
#3
data <- xts()
for(i in seq_along(symbols)) {
symbol <- symbols[i]
data <- merge(data, get(symbol)[,paste(symbol, "Close", sep=".")])
}
那些更常見的成語是警告,而不是錯誤。但是,你說「不按預期返回數據」。什麼是預期的,它與你得到的有什麼不同? – GSee
措辭不佳;是的,警告。我期待在工作空間中使用數據的符號;但是,我沒有。 – StatsViaCsh
哦,我明白了。如果你使用'getSymbols(sym,env = globalenv())'它會做你所期望的。我將添加一個更常見的成語 – GSee