来自csv的时间序列错误的顺序

时间:2012-02-14 07:17:15

标签: r quantmod

我遇到以下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 个答案:

答案 0 :(得分:2)

我没有使用过quantmod库,但是fImport库中的yahooSeries()函数可以为你提供全长的数据。

对于数据顺序,您应该将字符串日期转换为日期格式及其顺序,这里是代码:

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