是否有可能按照某种规则对 R tibble 的列进行重新排序?

Is it possible reorder columns of an R tibble by some rule?

我知道我可以使用 dplyr::select 来重新排列列,但是,具体来说,如果我有一个数字序列 columns/variables,有没有办法告诉 select 或其他函数将这些变量从具有最大方差的变量重新排列为具有最小方差的变量以降序排列?

这个问题也可以应用于其他函数而不是方差,或其他规则(也可以应用于字符变量)...

当然,只需计算每列的统计量并使用order

xy <- data.frame(a = rnorm(10, mean = 5),
                 b = rnorm(10, mean = -3),
                 c = rnorm(10, mean = 4))

xy[, order(sapply(xy, FUN = mean))]

           b        c        a
1  -2.471796 2.425745 5.679503
2  -3.902212 4.954602 5.550362
3  -4.701174 4.319966 5.702840
4  -3.803088 3.187227 4.768257