Ale*_*lex 4 r columnname dplyr
以下面的例子为例.
library(dplyr)
temp <- data.frame(lapply(1:3, function(i) rnorm(5, 0, 1)))
names(temp) <- paste0("X", 1:3)
temp_each <-
temp %>%
mutate_each(funs(mean, median))
Run Code Online (Sandbox Code Playgroud)
检查名称temp_each,我们看到了
> names(temp_each)
[1] "X1" "X2" "X3" "X1_mean" "X2_mean" "X3_mean" "X1_median" "X2_median" "X3_median"
Run Code Online (Sandbox Code Playgroud)
也就是说,最终列是三个一组,总是嘱咐 X1,X2,X3+应用的功能.
但是,我希望它看起来像这样
[1] "X1" "X1_mean" "X1_median" "X2" "X2_mean" "X2_median" "X3" "X3_mean" "X3_median"
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何实现这一点,最好使用dplyr,对于具有许多列和任意列名称的数据框?
在这里,你可以使用mixedorder从gtools
library(gtools)
temp_each[,mixedorder(colnames(temp_each))]
# X1 X1_mean X1_median X2 X2_mean X2_median
#1 0.28285115 -0.4369067 0.08556155 -0.9402162 -0.9857593 -0.7676634
#2 -1.29193398 -0.4369067 0.08556155 -0.5442052 -0.9857593 -0.7676634
#3 -1.42261044 -0.4369067 0.08556155 -0.7676634 -0.9857593 -0.7676634
#4 0.16159810 -0.4369067 0.08556155 -2.2270920 -0.9857593 -0.7676634
#5 0.08556155 -0.4369067 0.08556155 -0.4496198 -0.9857593 -0.7676634
# X3 X3_mean X3_median
#1 0.04606554 0.0923336 -0.08168136
#2 -0.08168136 0.0923336 -0.08168136
#3 0.90535333 0.0923336 -0.08168136
#4 -0.15699052 0.0923336 -0.08168136
#5 -0.25107897 0.0923336 -0.08168136
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |