Если нам нужна соответствующая опция в tidyverse
library(dplyr)
library(purrr)
df %>%
mutate(powersum = map2_dbl(n, p, powersum))
# n p powersum
#1 1 3 1
#2 2 3 9
#3 3 3 36
#4 4 3 100
rowwise
работает как группировка по строке, таким образом, он принимает каждый элемент за раз и применяет функцию. Та же концепция, что и в l oop с mapply
, где функция применяется к каждому из элементов. powersum
не векторизовано, поскольку последовательность 1:n
не векторизована. Например,
n1 <- 1:2
1:n1
[1] 1
Предупреждение: В 1: n1: числовое выражение имеет 2 элемента: используется только первый
Случай mutate
аналогичен применение функции с помощью
with(df, powerset(n, p))
или transform
transform(df, powersum = powerset(n, p))
Оба применяют функцию ко всей строке для каждого столбца