перемножить значения столбцов в данных.рамка столбец в другой данные.рамка на состоянии в р


У меня есть два фрейма данных в R, что я пытаюсь объединить на основе значений в столбце для каждого.

df1=data.frame(comp=c("comp1", "comp2", "comp3","comp1"), state1=c(1,0,0,1), state2=c(1,1,0,1), state3=c(0,1,1,0), state4=c(0,0,1,0),year=c(1,1,1,2))   comp state1 state2 state3 state4 year1 comp1      1      1      0      0    12 comp2      0      1      1      0    13 comp3      0      0      1      1    14 comp1      1      1      0      0    2df2=data.frame(state=c("state1","state2", "state3", "state4",                        "state1","state2", "state3", "state4"),  var1=c(1,0,0,1,0,0,1,1),  var2=c(0,1,0,0,0,1,1,0),  year=c(1,1,1,1,2,2,2,2))

df2

    state var1 var2 year1 state1    1    0    12 state2    0    1    13 state3    0    0    14 state4    1    0    15 state1    0    1    26 state2    0    1    27 state3    1    1    28 state4    1    0    2

Я хочу, чтобы добавить столбцы для df1, которые переменная1, переменная2 которая является средней из всех государств для этого комп.

так, var1 на comp1 должен быть 1*1 1*0 0*0 0*1/(1 1) или государство*ВАР/сумма(государство на комп) года.

df3 будет выглядеть так:

         state1 state2 state3 state4 year  var1  var2    1 comp1  1      1      0      0     1   0.5   0.5    2 comp2  0      1      1      0     1   0.0   0.5    3 comp3  0      0      1      1     1   0.5   0.0    4 comp1  1      1      0      0     2   0.5   1.0

Это возможно? Я пытался использовать ddply с виду переменных var1, подводя на комп и год, но это не сработает. Я в конечном итоге с более чем одной строке на комп в год.

Multiply various subsets of a data frame by different vectors

Спасибо заранее.Это самые похожие на мою проблему, но не показывает условный во втором наборе данных.

Посоветуйте, пожалуйста.