【问题标题】:How to use rowwise to create a list column based on a function如何使用 rowwise 创建基于函数的列表列
【发布时间】:2021-11-02 03:47:30
【问题描述】:

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

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。

标签: r dplyr tidyverse rowwise


【解决方案1】:

数据中没有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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-28
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多