我可能没有在标题中清楚地解释我的问题,道歉。这是代码的问题,它会更清楚,
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)
上面的代码仅以 3tickers
为例,我想知道如何loop
在 R 中执行 a 以使我的整个代码向量成为stockret
zoo
对象,有人可以帮助我吗?非常感激。
我在学习环境,刚学了函数是一个闭包,包括主体、参数和它的环境,但是我不知道我们可以新的环境。所以我被困在这里,stockData$AAPL.ret
如何stockData$
在循环分配值的同时将每个元素放在每个元素的前面?我应该"["
用来做这个吗?此外,如果我使用该assign
函数来执行此操作,则在代码中
stockData$AAPL.ret=diff(log(stockData$AAPL$AAPL.Adjusted)) # Compute log returns
如何做到这一点,我只是对如何stockData$AAPL$AAPL.Adjusted
在我的函数中使它成为一个更通用的参数感到困惑assign
,任何例子都将不胜感激!