2016-04-25 38 views
0

我有以下问题:我正在考虑一个包含相同数量投资组合的回报的10个不同矢量的数据库。我想把样本分成两个子集,一个包含市场表现积极的回报,另一个包含市场表现糟糕时的回报。出于这个原因,我有另一个载体包含市场的回报。如何从一个矢量收集观察值,并将其调整为另一个矢量的值

我做什么,到目前为止是这样的:

一)我已经计算天在市场上有正或负收益的数量:

n_bull <- sum(Mkt_Ret >= 0) 
n_bear <- sum(Mkt_Ret < 0) 

B)我已经创作了一系列的向量将包含结果对于每个组合,即:

Portfolio_1_Bull <- rep(0, n_bull) 
Portfolio_1_Bear <- rep(0, n_bear) 

c)中我运行一个循环,以填补后者与一个循环:

for(i in 1:length(Portfolio_1_EW_tot_ret)){ 
    if(Mkt_Ret[i] >= 0){ 
    Portfolio_1_Bull[i] = Portfolio_1_EW_tot_ret[i] 
    } 
} 
} 

问题是生成的向量Portfolio_1_Bull将具有相同数量的观察整个投资组合。有没有办法解决这个问题?

+2

'Portfolio_1_EW_tot_ret [Mkt_Ret> = 0]'? – Roland

回答

1

正如@Roland所说的最简单的方法是Portfolio_1_EW_tot_ret[Mkt_Ret >= 0]。但如果你想让你的循环工作,使用另一个计数器来索引你的投资组合:

j=1 
for(i in 1:length(Portfolio_1_EW_tot_ret)){ 
    if(Mkt_Ret[i] >= 0){ 
    Portfolio_1_Bull[j] = Portfolio_1_EW_tot_ret[i] 
    j = j+1 
    } 
} 
相关问题