R 如何获得数据帧中选定列的乘积之和?

R 如何获得数据帧中选定列的乘积之和?,r,R,这可能很简单,但我想不出一个解决方案。 我有下面的数据框,我想把y列和z列相乘,然后求和 > df <- data.frame(x = c(1,2,3), y = c(2,4,6), z = c(2,3,4)) > df x y z 1 1 2 2 2 2 4 3 3 3 6 4 >测向 x y z 1 1 2 2 2 2 4 3 3 3 6 4 找到的值应该等于40。如果我们不想重复df$或df[[来提取列,那么这里可以选择使用 with(df, sum( y * z

这可能很简单,但我想不出一个解决方案。 我有下面的数据框,我想把y列和z列相乘,然后求和

> df <- data.frame(x = c(1,2,3), y = c(2,4,6), z = c(2,3,4))
> df
  x y z
1 1 2 2
2 2 4 3
3 3 6 4
>测向
x y z
1 1 2 2
2 2 4 3
3 3 6 4

找到的值应该等于40。

如果我们不想重复
df$
df[[
来提取列,那么这里可以选择使用

with(df, sum( y * z))
#[1] 40

%*%

c(df$y %*% df$z)

此外,您还可以使用数据表。逗号后的第二行表示列(j)。您不需要空格,它们只是用来显示它的工作方式

library(data.table)

a <- data.table(x = c(1,2,3), y = c(2,4,6), z = c(2,3,4))
#dt i    j      by
a[   , sum(y*z),  ]
库(data.table)
A.