R中数据框中的条件求和

Mic*_*ael 5 r vector sumproduct

考虑以下数据帧:

df <- data.frame(row_id = c("r1","r2","r3","r4","r1","r2","r3","r4"),
                 v1 = c(3,2,5,2,5,2,6,4),
                 v2 = c(4,3,5,3,7,4,6,7))
Run Code Online (Sandbox Code Playgroud)

我想用“ row_id”求和。也就是说,对于具有row_id:“ r1”的行,我想进行以下计算:(3 * 4)+(5 * 7)。等等。

因此,我最终将具有以下矩阵:

df1 <- data.frame(row_id = c("r1","r2","r3","r4"),
                 v1 = c(47,14,61,34))
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

谢谢。

Jon*_*ing 6

相似但略短:

dplyr::count(df, row_id, wt = v1*v2)
Run Code Online (Sandbox Code Playgroud)