如何使用 rowwise 基于函数创建列表列

How to use rowwise to create a list column based on a function

假设我有这些数据和这个函数:

a <- data.frame(a= c(1,2,3), b=c(2,3,4))

fun <- function(q,y,z) {
    r <- data.frame(a = c(q+y, q, q, y), b= c(q,q,q,z))
    r
}

我想将该函数分别应用于每一行并创建一个列表列,其中每一行在这个新列中都有自己的数据框。

这是我尝试过的方法,但它给出了一个错误。

b <- a %>% rowwise(a) %>% mutate(list1 = list(fun(a, b, c)))

数据中没有 c 列。如果我们想为 'z'

传递默认值
library(dplyr)
out <- a %>% 
    rowwise %>%
    mutate(list1 = list(fun(a, b, z = 0)))

-输出

out$list1
[[1]]
  a b
1 3 1
2 1 1
3 1 1
4 2 0

[[2]]
  a b
1 5 2
2 2 2
3 2 2
4 3 0

[[3]]
  a b
1 7 3
2 3 3
3 3 3
4 4 0