汇总多个变量并分配给新的变量名称

时间:2021-03-01 21:11:36

标签: r dplyr

我正在使用'across'函数来获取一系列变量的汇总统计信息(例如,所有以'f_'开头的变量。由于cross函数会将汇总结果存储回原始变量名,具有多个具有不同汇总函数的跨函数会覆盖结果(如下所示)。 我可以通过在 summarise() 和 cbind 生成的单个表之后重命名变量来考虑解决方法。然而,这看起来很麻烦,我想知道是否有一种整洁(双关语)的方式来将一系列汇总结果存储到新的变量名中。

var_stats = data %>% 
  summarise(
    across(starts_with('f_'), max, na.rm = T),
    across(starts_with('f_'), min, na.rm = T)
  )

1 个答案:

答案 0 :(得分:4)

通过cross,您可以同时使用多个汇总函数并控制变量的名称。下面的例子对你有帮助吗?

mtcars %>% 
  summarise(across(starts_with("c"), list(custom_min = min, custom_max = max), .names = "{.col}_{.fn}"))

  cyl_custom_min cyl_custom_max carb_custom_min carb_custom_max
1              4              8               1               8