2017-03-08 10 views
0

私はRが新しく、操作の遅れに問題があります。Rがデータフレームに遅れている

これは私のデータフレームです。その後、( - の遅れで)Market_Cap $合計でそれを分割 -

Stock_Returns 

Date   Stock_A  Stock_B  
01.01.1990 NA   NA   
01.02.1990 0.02   0.04   
01.03.1990 0.03   0.05   
01.04.1990 0.04   0.06   

Market_Cap 

Date   Stock_A  Stock_B  Sum 
01.01.1990 30   30   60 
01.02.1990 20   35   55 
01.03.1990 30   50   80 
01.04.1990 40   60   100 

は、私は(の遅れで)Stock_ReturnsとMarket_CapのSUMPRODUCTを持っていると思います。

これは私のコードですいいえ遅れ

Index_Return 

Date   Index   
01.01.1990 NA      
01.02.1990 0.03    
01.03.1990 0.0427   
01.04.1990 0.0525 

1990年2月1日のための計算は次のようになります(0.02 * 30 + 0.04 * 30)/ 60

:私は-1

Index <- rowSums(Returns[,2:ncol(Returns)]*(Market_Cap[,3:ncol(Market_Cap)-1]),na.rm=TRUE)/Market_Cap$Sum 

私の出力は次のようになりますラグが必要

ありがとうございます!

答えて

0

これは、行番号を使用して目的の出力を達成する方法です。第1のテーブルの行のサブセットをインデックスnで選択し、第2のテーブルでインデックスn-1を有する行のサブセットを選択する。

Index <- rowSums(Returns[2:nrow(Returns), 2:ncol(Returns)] * Market_Cap[2:nrow(Returns)-1, 3:ncol(Market_Cap)-1], na.rm = T)/Market_Cap[2:nrow(Returns)-1, "Sum"] 

その後、我々は戻り値に付加することができます迅速な答えを

Returns$Index[2:nrow(Returns)] <- Index 
+0

感謝を。これは私にとって完璧に機能します! –

関連する問題