Временные ряды из CSV в неправильном порядке - PullRequest
2 голосов
/ 14 февраля 2012

У меня проблема со следующим 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" 
)

SMA рассчитывается, но в неправильном порядке.Таким образом, я должен заказать файл по возрастанию, прежде чем рассчитывать SMA?Я думаю, что дата в файле используется как строка, а не как дата?

Я не использую getSymbols("AAPL",src="yahoo"), потому что он возвращает данные только с 2007 года по настоящее время, а не более старые данные.

1 Ответ

2 голосов
/ 14 февраля 2012

Я не использовал библиотеку quantmod, но функция yahooSeries () в библиотеке fImport может предоставить вам всю длину данных.

Для порядка данных вам следует преобразовать строковую дату в формат даты и порядок еевот код:

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), ]
...