2016-03-23 2 views
0

Refが、私は一連のシンボルをダウンロードしていると私は近くに調整し、私はできないため月次リターンを計算する必要があり、このポストにSimilar question複数のシンボルのデータをダウンロードするgetSymbolsの詳細や月次リターンを計算

を作りましたそれが働くように思える。以前の投稿では、ROC @ Joshua Ulrichを使ってこの問題に対処することができましたが、これは毎日の返品です。他の例では「close」を使用していますが、これは私には良いことではありません。

私の出発点:

library('quantmod') 
tickers <- c("XOM","MSFT","JNJ","GE","CVX","WFC","PG","JPM","VZ","PFE", 
     "T","IBM","MRK","BAC","DIS","ORCL","PM","INTC","SLB") 
#The following gives me what I need, but using Close instead of Adjusted 
stocks_ret <- lapply(tickers, function(sym) monthlyReturn(type = 'log',(na.omit(getSymbols(sym, from='2013-01-01, auto.assign=FALSE))))) 

ジョシュア・ウルリッヒ・ソリューション(素晴らしい作品が、私は月次リターンにそれを有効にする方法は考えを持っていない):

# create environment to load data into 
Data <- new.env() 
getSymbols(c("^GSPC",Symbols), from="2007-01-01", env=Data) 
# calculate returns, merge, and create data.frame (eapply loops over all 
# objects in an environment, applies a function, and returns a list) 
Returns <- eapply(Data, function(s) ROC(Ad(s), type="discrete")) 
ReturnsDF <- as.data.frame(do.call(merge, Returns)) 
#adjust column names are re-order columns 
colnames(ReturnsDF) <- gsub(".Adjusted","",colnames(ReturnsDF)) 
ReturnsDF <- ReturnsDF[,c("GSPC",Symbols)] 

は、次に私が試した:

Returns <- eapply(Data, function(s) ROC(Ad(s)[endpoints(tickers, on = 'months'),], type="discrete")) 

"try.xts(x、error ="のエラーは、xts-coercibleまたはtimeBのいずれかである必要があります)のエラーメッセージが表示されます。 ASED「)」

しかし、私は私が毎日OGの代わりに月単位で計算することができますどのように解決策を見つけるカント..「N = 21」..

誰もが問題を解決していません?

答えて

2

クリスは、これはあなたの努力のためにあなたの質問

library('quantmod') 
library('dplyr') 
tickers <- c("XOM","MSFT","JNJ","GE","CVX","WFC","PG","JPM","VZ","PFE", 
      "T","IBM","MRK","BAC","DIS","ORCL","PM","INTC","SLB") 

Stock_Data <- tickers %>% lapply(function(x) getSymbols(x,auto.assign=FALSE)) %>% 
    lapply(function(x) monthlyReturn(Ad(x))) 
+0

感謝を解決するための一つの方法です。まだ別のパッケージを使用せずにそれを行う方法はありますか? – cJc

+0

はい。 Stock_Data < - lapply(Stock_Data、function(x)monthlyReturn(Ad(x))) –

+0

Tnxたくさん、素晴らしいです! – cJc

関連する問題