Ich versuche zu verwenden, um eine Funktion auf alle Symbole anwenden, die ich in einer Liste habe. Die Symbole sind Aktienkursdaten der Form:Verwenden von Lapply mit einer Liste von Aktien Symbolen
Date Open High Low Close
ich in der Lage gewesen, es zu tun mit diesem Format:
require(TTR)
require(quantmod)
symbols <- c("XLF", "XLK", "XLU")
StartDate = '2015-01-01'
Stocks = lapply(symbols, function(sym, column) {
SMA(na.omit(getSymbols(sym, from=StartDate, auto.assign=FALSE))[,4],20)
})
aber ich kann nicht trainieren, wie einfach lapply verwenden, um eine Funktion anzuwenden zu einer Liste von Symbolen, für die ich bereits Daten habe. Ich möchte nicht die Daten mit getSymbols herunterladen, ich möchte meine eigenen Daten für die gleichen Symbole verwenden.
Im folgenden Beispiel lade ich es nur herunter, um ein reproduzierbares Beispiel zu erstellen, aber in Wirklichkeit habe ich die Daten für die Symbole als XTS-Objekte gespeichert.
Ich kann nicht verstehen, warum dies nicht funktionieren wird, oder wie es zu dem ersten Beispiel unterscheidet:
require(TTR)
require(quantmod)
symbols <- c("XLF", "XLK", "XLU")
getSymbols(symbols, src='yahoo', from = '2015-01-01')
SMA_Symbols <- lapply(symbols, function(sym, column) {
SMA(sym[,4],20)
})
ich den Fehler:
Error in sym[, 4] : incorrect number of dimensions Called from: inherits(x, "xts")
Danke @Psidom, für den richtigen Code und die detaillierte Antwort. Das macht vollkommen Sinn. Sehr geschätzt. – trentcroad