我正在使用 'across' 函数来获取一系列变量的汇总统计信息(例如,所有以 'f_' 开头的变量。由于 across 函数会将汇总结果存储回原始变量名称,因此具有多个 cross具有不同汇总函数的函数会覆盖结果(如下所示)。我可以想到一种解决方法,方法是在 summarise() 后重命名变量并 cbind 结果单个表。但是,这看起来很麻烦,我想知道是否有是将一系列汇总结果存储到新变量名称的一种整洁(双关语)方式。
var_stats = data %>%
summarise(
across(starts_with('f_'), max, na.rm = T),
across(starts_with('f_'), min, na.rm = T)
)
Run Code Online (Sandbox Code Playgroud)
通过 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
Run Code Online (Sandbox Code Playgroud)