1

Yahoo から 15 シンボルの ETF データを取得しており、同じコード行を 15 回書き込もうとしています。私は読んだことlapplyがありますが、この文脈ではそれを理解できていません。

ファイルをロードした後、getSymbols以下の最初の 2 つのシンボルのコードを開始しましたが、コピーして貼り付けてから、シンボルを 15 回変更します。これらの手順を実行する方法または同様の方法が必要であることは知っていますlapply...

library(quantmod)
library(tseries)
library(PerformanceAnalytics)
library(xts)
library(timeSeries)
library(TTR)

#load asset class symbols and data
loadSymbolLookup(file="assetclassymbols.rda")
getSymbols(c("ACWI","ITOT","IJR","EFA","EEM","AGG","MUB","TIP","TLH","TLT","HYG","EMB","IYR","GSG","GLD"))

#pull adjusted close value for a specific time period
ACWI.adj=Ad(ACWI)['2015-12-31::2016']
AGG.adj=Ad(AGG)['2015-12-31::2016']
#REPEAT FOR EACH SYMBOL

#calculate returns for the specific time period and remove prior-period "NA" row
ACWI.return=Return.calculate(ACWI.adj)
AGG.return=Return.calculate(AGG.adj)
ACWI.return=ACWI.return[-c(1)]
AGG.return=AGG.return[-c(1)]
#REPEAT FOR EACH SYMBOL

#merge asset class return streams to a single dataset
asset.returns=(merge(ACWI.return,AGG.return)) #...CONT. MERGING ALL SYMBOLS.return
colnames(asset.returns)=c("ACWI","AGG") #...CONT. LIST OF ALL SYMBOLS

私の目標は、すべてのシンボルを列ヘッダーとして含み、各行に計算された収益を含むデータ セットを完成させることです。

4

1 に答える 1

0

FUN引数にlapply無名関数を定義できます。

syms <- c("ACWI","ITOT","IJR","EFA","EEM","AGG","MUB",
          "TIP","TLH","TLT","HYG","EMB","IYR","GSG","GLD")


lapply(syms, function(s) 
  Return.calculate(Ad(getSymbols(s, auto.assign = FALSE)
                      )['2015-12-31::2016'])[-1L])
于 2016-02-09T02:10:00.210 に答える