2016-04-25 6 views
0

次の問題があります。同じ数のポートフォリオが返された10種類のベクトルのデータベースを検討しています。サンプルを2つのサブセットに分割します.1つは、市場が積極的に実行した場合のリターンと、市場がひどく実行した場合のリターンを含むものです。このような理由から私は市場の復帰を含む別のベクトルを持っています。別の1つのベクトルから観測値を収集する方法

A)私は市場が正または負のリターンを持っていたの日数を計算しています:

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

@ローランドは、最も簡単な方法は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 
    } 
} 
関連する問題