gpt4 book ai didi

r - dplyr:汇总每一列并返回列表列

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

我希望使用自定义汇总函数汇总小标题中的每一列,该函数将根据数据返回不同大小的小标题。

假设我的汇总函数是这样的:

mysummary <- function(x) {quantile(x)[1:sample(1:5, 1)] %>% as_tibble}

它可以应用于一列,如下所示:
cars %>% summarise(speed.summary = list(mysummary(speed)))

但我想不出使用 summarise_all 来实现这一目标的方法(或类似的东西)。

使用 cars数据,所需的输出将是:
tribble(
~speed.summary, ~dist.summary,
mysummary(cars$speed), mysummary(cars$dist)
)

# A tibble: 1 x 2
speed.summary dist.summary
<list> <list>
1 <tibble [5 x 1]> <tibble [2 x 1]>

当然,实际数据有更多的列......

建议?

最佳答案

我们可以用

res <- cars %>%
summarise_all(funs(summary = list(mysummary(.)))) %>%
as.tibble
res
# A tibble: 1 x 2
# speed_summary dist_summary
# <list> <list>
#1 <tibble [3 x 1]> <tibble [2 x 1]>

res$speed_summary
#[[1]]
# A tibble: 3 x 1
# value
#* <dbl>
#1 4.00
#2 12.0
#3 15.0

关于r - dplyr:汇总每一列并返回列表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48477333/

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