2

次の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年から現在までのデータのみを返し、古いデータは返さないため、使用しません。

4

1 に答える 1

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), ]
于 2012-02-14T07:55:03.647 に答える