0

SP500 の 500 百株の過去 1 年間の終値を取得しようとしています。SP500 ファイルはこちらからhttp://blog.quanttrader.org/2011/03/downloading-sp-500-data-to-r/sp500/

1 日単位で 2 つの日付の間の動物園オブジェクトを初期化しました。これを株価の終値と併合すると、最終的な「z」は、一部の日付 (週末、祝日) で na を持つオブジェクトを返します。したがって、na.omit を使用して na を削除しようとしましたが、これは単純に空のオブジェクトを返します。ただし、na.omit は、100 のように在庫数が少ない場合に機能します。なぜこうなった?

library(quantmod);
library(PerformanceAnalytics);
#Get SP500 stocks
symbols <- read.csv("~/Dropbox/R works/sp500.csv",header=F,stringsAsFactors=F)
nrStocks <- length(symbols[,1])
#Past 1 yr returns
to <- Sys.Date()-1
from <-seq(to, length=2, by="-1 year")[2]
dates<- seq(from=from,to=to,by="1 day")
z <- zoo(,dates)

for (i in 1:nrStocks) {
  cat("Downloading ", i, " out of ", nrStocks , "\n")
  x <- try(Cl(getSymbols(symbols[i,],from = from, to = to, auto.assign=FALSE)))
  if (!inherits(x, "try-error") ){
    z<-merge(x,z)
  }
}
z<-na.omit(z)
4

1 に答える 1

1

私のために働きます。またgetSymbols、デフォルトで xts オブジェクトを返すことに注意してください (zoo オブジェクトではありません)。最初の引数としてmergeを呼び出すため、ディスパッチされます。これは、xts オブジェクトになることを意味します。xmerge.xtsz

> library(quantmod)
> symbols <- c("IBM","MSFT","AAPL","GE")
> nrStocks <- length(symbols)
> to <- Sys.Date()-1
> from <- seq(to, length=2, by="-1 year")[2]
> dates<- seq(from=from,to=to,by="1 day")
> z <- zoo(,dates)
> 
> for (i in 1:nrStocks) {
+   cat("Downloading ", i, " out of ", nrStocks , "\n")
+   x <- try(Cl(getSymbols(symbols[i],from = from, to = to, auto.assign=FALSE)))
+   if (!inherits(x, "try-error") ){
+     z<-merge(x,z)
+   }
+ }
Downloading  1  out of  4 
Downloading  2  out of  4 
Downloading  3  out of  4 
Downloading  4  out of  4 
> z<-na.omit(z)
> head(z)
           GE.Close AAPL.Close MSFT.Close IBM.Close
2012-05-07    19.32     569.48      30.65    203.75
2012-05-08    19.25     568.18      30.50    201.48
2012-05-09    18.91     569.18      30.76    201.23
2012-05-10    19.09     570.52      30.74    200.60
2012-05-11    19.01     566.71      31.16    201.17
2012-05-14    18.60     558.22      30.68    199.44
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] quantmod_0.4-0 Defaults_1.1-1 TTR_0.22-0     xts_0.9-3      zoo_1.7-10    

loaded via a namespace (and not attached):
[1] grid_2.15.2     lattice_0.20-10 tools_2.15.2 
于 2013-05-07T15:52:46.310 に答える