我想知道是否有一种更简洁的方法来汇总dplyr中的变量,并且将不同的汇总函数用于不同的列组。例如,下面的代码将在元音列上min
上,在辅音上max
上,但这很麻烦并且会改变列的顺序。
library(tidyverse)
vowels <- c("a","e","i","o","u")
df %>%
select(one_of(vowels)) %>% summarize_all(min) %>%
bind_cols(df %>% select(-one_of(vowels)) %>% summarize_all(max))
我知道我可以使用summarize_all(funs(min,max))
然后对所需的列进行子集设置,但这似乎也不是最优的,尤其是在汇总函数可能在计算上非常昂贵的非平凡情况下。
我真的很想要一个将变量和函数成对分组的函数(即summarize_at2(vars(one_of(vowels),-one_of(vowels)), funs(min,max))
)。也许有一些干净的方法可以使用purrr
来做到这一点?