R:将数据框中的所有列相乘
R: multiply all columns in a dataframe
我的数据框包含所有数字列(例如 mtcars)。如何创建一个显示所有列的产品的新列?我的尝试:
library(tidyverse)
mtcars %>% mutate(product=prod(mpg:carb))
产生不正确的产品
mpg cyl disp hp drat wt qsec vs am gear carb product
1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 8.515157e+18
2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 8.515157e+18
...
我们可以使用Reduce
mtcars %>%
mutate(Prod = Reduce(`*`, .))
或使用do
mtcars %>%
rowwise() %>%
do(data.frame(., Prod = prod(unlist(.))))
我的数据框包含所有数字列(例如 mtcars)。如何创建一个显示所有列的产品的新列?我的尝试:
library(tidyverse)
mtcars %>% mutate(product=prod(mpg:carb))
产生不正确的产品
mpg cyl disp hp drat wt qsec vs am gear carb product
1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 8.515157e+18
2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 8.515157e+18
...
我们可以使用Reduce
mtcars %>%
mutate(Prod = Reduce(`*`, .))
或使用do
mtcars %>%
rowwise() %>%
do(data.frame(., Prod = prod(unlist(.))))