タイトルで質問を明確に説明できない場合があります。申し訳ありません。これがコードに関する質問です。より明確になります。
library(zoo);library(quantmod)
stockData <- new.env()#Make a new environment for quantmod to store data in
startDate = as.Date("2006-12-29") #Specify period of time we are interested in
endDate = as.Date("2012-12-31")
monthlyStartDate = as.Date("2007-01-01")
# tickers <- c("AAPL","GOOG", "IBM")
tickers <- c("AAPL","GOOG", "IBM", "MSFT", "INTC", "YHOO", "F", "GS", "UL")
# The tickers vector could be even larger, i.e. 50 stocks
stockData$AAPL.ret=diff(log(stockData$AAPL$AAPL.Adjusted)) # Compute log returns
stockData$GOOG.ret=diff(log(stockData$GOOG$GOOG.Adjusted)) # Compute log returns
stockData$IBM.ret=diff(log(stockData$IBM$IBM.Adjusted)) # Compute log returns
head(stockData$GOOG.ret)
head(stockData$GOOG$GOOG.Adjusted)
AAPLmonthly<-aggregate.zoo(stockData$AAPL.ret[2:nrow(stockData$AAPL$AAPL.Adjusted),],as.yearmon,sum)
GOOGmonthly<-aggregate.zoo(stockData$GOOG.ret[2:nrow(stockData$GOOG$GOOG.Adjusted),],as.yearmon,sum)
IBMmonthly<-aggregate.zoo(stockData$IBM.ret[2:nrow(stockData$IBM$IBM.Adjusted),],as.yearmon,sum)
head(AAPLmonthly)
stockret = cbind(AAPLmonthly, GOOGmonthly, IBMmonthly)
head(stockret)
上記のコードは例として 3 のみを使用しました。ティッカーのベクトル全体をオブジェクトにするために R でtickers
a を実行する方法を知りたいのですが、誰か助けてもらえますか? とても有難い。loop
stockret
zoo
関数が本体、引数、およびその環境を含むクロージャーであることを学びましたが、新しい環境を作成できるとは知りませんでした。ここで立ち往生しました。値を割り当てるためにループを実行しているときに、各要素の前stockData$AAPL.ret
に配置するにはどうすればよいですか? stockData$
これを行うために使用"["
する必要がありますか?さらに、assign
関数を使用してこれを行うと、コードで
stockData$AAPL.ret=diff(log(stockData$AAPL$AAPL.Adjusted)) # Compute log returns
stockData$AAPL$AAPL.Adjusted
これを行う方法、関数でこれをより一般的な引数にする方法について混乱しているだけですassign
。どんな例でも大歓迎です!