/ / Szeregi czasowe z csv w złej kolejności - r, quantmod

Szeregi czasowe z csv w złej kolejności - r, quantmod

Mam problem z następującym skryptem R:

    library(quantmod)
mydata = read.csv("C:/AAD.DE.csv")
### getSymbols("AAPL",src="yahoo")
sma20 <- SMA(mydata[,"Close"],20)


write.csv(
data.frame( date=index(mydata[,"Date"])
, coredata(mydata)
, coredata(sma20)
),
row.names=FALSE,
file="C:/neu_AAD.DE.csv"
)

Wartość SMA jest obliczana, ale w niewłaściwej kolejności. Więc muszę zamówić plik rosnąco przed obliczeniem SMA? Myślę, że data w pliku jest używana jako ciąg znaków, a nie jako data?

Nie używam getSymbols("AAPL",src="yahoo") ponieważ zwraca tylko dane od 2007 do teraz i żadnych starszych danych.

Odpowiedzi:

2 dla odpowiedzi № 1

Nie używałem biblioteki quantmod, ale funkcja yahooSeries () w bibliotece fImport może dostarczyć pełnej długości danych.

W przypadku danych, należy przekonwertować datę ciągu na format daty i kolejność, tutaj jest kod:

library(fImport)
mydata <- yahooSeries(symbols = "AAPL", nDaysBack = 100000)
mydata <- as.data.frame(mydata, stringsAsFactors = FALSE)
mydata <- cbind(rownames(mydata), mydata)
names(mydata) <- c("Date", "Open", "High", "Low", "Close", "Volume", "Adj.Close")
rownames(mydata) <- NULL
mydata$Date <- as.Date(mydata$Date)
mydata <- mydata[order(mydata$Date), ]