Рассмотрим следующий фрейм данных:
d <- data.frame(a = c("s10","s20","s30"),
b = c("1000","200","1000"),
c = c("3000","50","60"))
a b c
1 s10 1000 3000
2 s20 200 50
3 s30 1000 60
Я хочу агрегировать его на основе следующего фрейма данных:
e <- data.frame(a = c("s10","s10","s10","s20","s30"),
b = c("t10","t40","t30","t20","t60"),
c = c("0.33","0.33","0.33","1","1"))
a b c
1 s10 t10 0.33
2 s10 t40 0.33
3 s10 t30 0.33
4 s20 t20 1
5 s30 t60 1
Итак, я получаю следующую таблицу:
a b c
1 t10 333.3 1000
2 t40 333.3 1000
3 t30 333.3 1000
4 t20 200 50
5 t60 1000 60
То есть из фрейма данных «е» текст «s10» переходит в три разных текста («t10», «t40» и «t30»), поэтому значения из столбцов «b» и «c "во фрейме данных" d "следует умножить на долю из столбца" c "во фрейме данных e (то есть 1 000 * 0,33 и 3 000 * 0,33). И так далее для остальных ценностей.