如何使用按行创建基于函数的列表列 [英] How to use rowwise to create a list column based on a function

查看:7
本文介绍了如何使用按行创建基于函数的列表列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

这篇关于如何使用按行创建基于函数的列表列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆