Я мог бы не ясно объяснить свои вопросы в заголовке, извините. Вот вопрос с кодом, будет понятнее,
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 tickers
, я хочу знать, как сделать loop
в R, чтобы весь мой вектор тикеров превратился в объект stockret
zoo
, может ли кто-нибудь мне помочь? Очень признателен.
Я изучаю среду, только что узнал, что функция является закрытием, включая тело, аргументы и его среду, но я не знал, что мы можем создать новую среду. Итак, я застрял здесь, stockData$AAPL.ret
как мне поставить stockData$
перед каждым моим элементом, выполняя цикл для присвоения значений? Должен ли я использовать "["
для этого? Кроме того, если я использую для этого функцию assign
, в коде
stockData$AAPL.ret=diff(log(stockData$AAPL$AAPL.Adjusted)) # Compute log returns
как это сделать, я просто не понимаю, как сделать этот stockData$AAPL$AAPL.Adjusted
более общим аргументом в моей функции assign
, любой пример был бы очень признателен!
library(zoo)
в начале вашего кода. - person Alex Brown   schedule 18.01.2014