汇总一个在列表中返回多个值的函数

保存

我有一个函数,该函数接收两个向量并返回参数列表,类似于此参数:

f <- function(x, n) {
    mu <- sum(x)/sum(n)
    max <- max(x/n)
    min <- min(x/n)
    return(list(mu = mu, max = max, min = min))
}

现在,我想该功能适用于分组数据帧,并取回一个新的数据帧与列mumaxmin和分组变量level

我试图这样做summarize,如下所示:

data %>% group_by(level) %>% summarize(p=f(x=x, n=n))

但是,我得到的不是一个具有第四列的数据框,而是一个具有两列的数据框,其中第二列包含为包装为一个元素列表的函数而出现的每个参数的条目。

我可以处理该数据帧以生成所需的格式,如下所示:

data2 %>%
  transmute(level=level, col=names(p), value=p[[1]]) %>%
  pivot_wider(names_from=col, values_from=value)

但这看起来很复杂而且很丑陋,那么,有没有更简单的方法可以做到这一点?

更新:完整代码:

n <- sample(100, size=10, replace=TRUE)
x <- rbinom(100, n, 0.5)
level <- sample(c("a", "b", "c"), 100, replace=TRUE)
data <- data.frame(level=level, x=x, n=n)

f <- function(x, n) {
    mu <- sum(x)/sum(n)
    max <- max(x/n)
    min <- min(x/n)
    return(list(mu = mu, max = max, min = min))
}

data2 <- data %>% group_by(level) %>% summarize(p=f(x=x, n=n))

data3 <- data2 %>%
    transmute(level=level, col=names(p), value=p[[1]]) %>%
    pivot_wider(names_from=col, values_from=value)

您可以通过在函数中替换return(list(mu = mu, max = max, min = min))并像这样使用它来做到这一点:return(tibble(mu = mu, max = max, min = min))f

df %>% group_by(group) %>% summarise(f(x, y))

其中group被分组变量,x并且y在功能上可使用的变量f

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使一个函数返回列表中的多个值吗?

来自分类Dev

从 Python 中另一个函数的 for 循环向主函数返回多个值

来自分类Dev

返回匹配一个或多个条件的值列表

来自分类Dev

从一个函数返回多个值

来自分类Dev

Oracle SQL 函数返回一个或多个值

来自分类Dev

函数中的“返回”仅返回一个值

来自分类Dev

在函数的函数中返回一个值

来自分类Dev

在一个函数中返回2个值

来自分类Dev

JS在一个函数中返回多个Promise

来自分类Dev

在同一个函数中返回多个变量

来自分类Dev

如何将一个函数的多个返回值定位到pandas数据框的多个列中?

来自分类Dev

将多个HTTP请求的结果汇总到一个列表中

来自分类Dev

Python:如何仅从一个函数(使用asyncio.gather执行的多个函数)中获取返回值

来自分类Dev

我想使用指针从函数返回多个值,但它返回一个值

来自分类Dev

在对R中的向量的每个值应用函数之后,创建一个返回因子列表的函数

来自分类Dev

等待异步函数在 Typescript 中返回一个值。

来自分类Dev

从函数返回一个列表

来自分类Dev

从 asyncio 函数返回一个列表

来自分类Dev

分割一个函数在一个表达式中返回的列表

来自分类Dev

我需要从一个函数返回多个值并将它们打印在我的 Wordpress 模板中

来自分类Dev

返回具有多个输入参数的函数的值以在同一类中具有多个参数的另一个函数中使用?

来自分类Dev

如何从异步函数返回多个值以在另一个函数中使用

来自分类Dev

如何通过函数返回多个值(向量和一个 int 值)

来自分类Dev

在同一个“返回值对象”中访问一个 javascript 函数

来自分类Dev

是否有一个接受列表并返回该列表中重复元素列表的函数?

来自分类Dev

将多个事件汇总到一个界面中

来自分类Dev

根据另一个列表中的索引汇总一个列表中的元素

来自分类Dev

在Scala中使用Currying:多个参数列表与返回一个函数

来自分类Dev

如何从一个函数返回多个列表,并保留其名称?

Related 相关文章

  1. 1

    我可以使一个函数返回列表中的多个值吗?

  2. 2

    从 Python 中另一个函数的 for 循环向主函数返回多个值

  3. 3

    返回匹配一个或多个条件的值列表

  4. 4

    从一个函数返回多个值

  5. 5

    Oracle SQL 函数返回一个或多个值

  6. 6

    函数中的“返回”仅返回一个值

  7. 7

    在函数的函数中返回一个值

  8. 8

    在一个函数中返回2个值

  9. 9

    JS在一个函数中返回多个Promise

  10. 10

    在同一个函数中返回多个变量

  11. 11

    如何将一个函数的多个返回值定位到pandas数据框的多个列中?

  12. 12

    将多个HTTP请求的结果汇总到一个列表中

  13. 13

    Python:如何仅从一个函数(使用asyncio.gather执行的多个函数)中获取返回值

  14. 14

    我想使用指针从函数返回多个值,但它返回一个值

  15. 15

    在对R中的向量的每个值应用函数之后,创建一个返回因子列表的函数

  16. 16

    等待异步函数在 Typescript 中返回一个值。

  17. 17

    从函数返回一个列表

  18. 18

    从 asyncio 函数返回一个列表

  19. 19

    分割一个函数在一个表达式中返回的列表

  20. 20

    我需要从一个函数返回多个值并将它们打印在我的 Wordpress 模板中

  21. 21

    返回具有多个输入参数的函数的值以在同一类中具有多个参数的另一个函数中使用?

  22. 22

    如何从异步函数返回多个值以在另一个函数中使用

  23. 23

    如何通过函数返回多个值(向量和一个 int 值)

  24. 24

    在同一个“返回值对象”中访问一个 javascript 函数

  25. 25

    是否有一个接受列表并返回该列表中重复元素列表的函数?

  26. 26

    将多个事件汇总到一个界面中

  27. 27

    根据另一个列表中的索引汇总一个列表中的元素

  28. 28

    在Scala中使用Currying:多个参数列表与返回一个函数

  29. 29

    如何从一个函数返回多个列表,并保留其名称?

热门标签

归档