小编spi*_*y18的帖子

如何以编程方式构建 dplyr 汇总语句?

我正在尝试进行一些 dplyr 编程并且遇到了麻烦。我想要group_by任意数量的变量(因此,across),然后summarize基于任意长度(但长度都相同)的向量:

  • 要应用该函数的列
  • 申请的功能
  • 新列的名称

所以,就像在maporapply语句中一样,我想执行最终看起来像这样的代码:

data %>%
  group_by(group_column) %>%
  summarize(new_name_1 = function_1(column_1),
  summarize(new_name_2 = function_2(column_2))

Run Code Online (Sandbox Code Playgroud)

这是我想要的和迄今为止我最好的镜头的一个例子。我知道names如果我使用 cross,我可以使用参数来清理它们,但我不相信 cross 是正确的方法。最后,我将把它应用到相当大的数据帧,所以我宁愿不计算额外的列。

想要的结果

mtcars %>%
  group_by(across(c("cyl", "carb"))) %>%
  summarise(across(c("disp", "hp"), list(mean = mean, sd = sd))) %>%
  select(cyl, carb, disp_mean, hp_sd)
#> `summarise()` regrouping output by 'cyl' (override with `.groups` argument)
#> # A tibble: 9 x 4
#> # Groups:   cyl [3]
#>     cyl  carb disp_mean hp_sd
#> …
Run Code Online (Sandbox Code Playgroud)

r dplyr

6
推荐指数
1
解决办法
82
查看次数

标签 统计

dplyr ×1

r ×1