些細な質問で申し訳ありません。これが私のサンプルデータです:
(x <- data.frame(period=c('20130101','20130102'),symbol=c('x1','x2'),V1=c(1,2),V2=c(3,4)))
(y <- data.frame(period=c('20130101','20130101','20130102','20130102'),
symbol=rep(c('V1','V2'),2),w1=rep(c(0.5,0.5),2),w2=rep(c(0.3,0.7),2),
w3=rep(c(0.2,0.8),2) ) )
特定の日とシンボルに対して、テーブル 'x' には 2 つの値 (V1、V2) があります。
period symbol V1 V2
1 20130101 x1 1 3
2 20130102 x2 2 4
特定の日のすべての値 (V1、V2) には、3 つのグループの重み (w1、w2、w3) があります。
period symbol w1 w2 w3
1 20130101 V1 0.5 0.3 0.2
2 20130101 V2 0.5 0.7 0.8
3 20130102 V1 0.5 0.3 0.2
4 20130102 V2 0.5 0.7 0.8
ループなしで 2 つのテーブルの加重値を計算する方法** たとえば、'20130101' では、'x1' の V1 と V2 はそれぞれ 1 と 3 です。次に、テーブル「y」で日付「20130101」と V1 および V2 を検索すると、3 つのグループの重みが得られます。加重値は次のように計算されます。
wv1=1*0.5 + 3*0.5=2
wv2=1*0.3 + 3*0.7=2.4
wv3=1*0.2 + 3*0.8=2.6
結果表は次のようになります。
period symbol wv1 wv2 wv3
1 20130101 x1 2 2.4 2.6
...