将R中数据框中的特定列与多列相乘

-2 r apply lapply

我是 R 新手。我的数据如下所示:

df <- data.frame(a=c(1, 1, 2, 3, 8, 9, 1, 3), b = c(5, 4, 3, 8, 6, 1, 0, 2), x = c(4, 3, 8, 9, 1, 8, 2, 3))
> df
  a b x
1 1 5 4
2 1 4 3
3 2 3 8
4 3 8 9
5 8 6 1
6 9 1 8
7 1 0 2
8 3 2 3
Run Code Online (Sandbox Code Playgroud)

我需要编写一个函数来将该列x与其他列相乘(这里只是ab但我有 30-40)。

目前我已经编写了一个 for 循环,它一次对列进行乘法。我需要帮助对其进行矢量化并同时进行计算。

m0n*_*awk 5

mutate您可以在from包的帮助下完成此操作dplyr

df <- df %>% mutate(mul = a * b * x)

df
  a b x mul
1 1 5 4  20
2 1 4 3  12
3 2 3 8  48
4 3 8 9 216
5 8 6 1  48
6 9 1 8  72
7 1 0 2   0
8 3 2 3  18
Run Code Online (Sandbox Code Playgroud)