[英]Row-wise multiplication of selected columns with dplyr
對從 daraframe 中選擇的所有列執行逐行乘法的方法是什么。 下面的 Mult 列是通過說明要乘以哪些變量來顯式創建的。
如果我選擇了不同的列怎么辦? 什么代碼需要在 mutate 中才能乘以之前選擇的所有列? 注意:所選列的數量並不總是三。
例子:
library(tidyverse)
mtcars %>%
select(hp, qsec, disp) %>%
mutate(mult = hp * qsec * disp)
一種可能的方式是使用rowProds
從包matrixStats
:
mtcars %>%
select(hp, qsec, disp) %>%
mutate(mult=rowProds(as.matrix(.)))
但我相信有一種更優雅的方式而不使用其他包。
您可以使用Reduce
-
library(dplyr)
mtcars %>%
select(hp, qsec, disp) %>%
mutate(mult = Reduce(`*`, .))
或rowwise
與prod
-
mtcars %>%
select(hp, qsec, disp) %>%
rowwise() %>%
mutate(mult = prod(c_across()))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.