gpt4 book ai didi

r - 在 dplyr mutate 或 summary 中有效分配具有多个输出的函数

转载 作者:行者123 更新时间:2023-12-04 11:21:01 25 4
gpt4 key购买 nike

我注意到这里有很多使用 dplyr::mutate 的例子。结合返回多个输出的函数来创建多列。例如:

tmp <- mtcars %>%
group_by(cyl) %>%
summarise(min = summary(mpg)[1],
median = summary(mpg)[3],
mean = summary(mpg)[4],
max = summary(mpg)[6])

然而,这样的语法意味着 summary函数被调用 4 次,在这个例子中,这似乎不是特别有效。有什么方法可以有效地将列表输出分配给 summarise 中的列名列表或 mutate ?

例如,来自上一个问题: Split a data frame column containing a list into multiple columns using dplyr (or otherwise) ,我知道你可以赋值 summary的输出作为一个列表,然后使用 do(data.frame(...)) 拆分它,但是这意味着您必须稍后添加列名,并且语法不那么漂亮。

最佳答案

tie Romain Francois 的包可以非常巧妙地做到这一点

devtools::install_github("romainfrancois/tie")
library('tidyverse')
library('tie')

tmp <- mtcars %>%
group_by(cyl) %>%
bow( tie(min, median, mean, max) := summary(mpg)[c(1,3,4,6)] )

注意使用 :=而不是 = .

tidyverse 团队在此处考虑了使用返回向量(而不是标量)的函数的这个问题 https://github.com/tidyverse/dplyr/issues/154并在其中引用的其他帖子中。

关于r - 在 dplyr mutate 或 summary 中有效分配具有多个输出的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38223003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com