我有一个数据框,我想根据列平均值重新排序。我想通过降低列平均值来重新排序
SNR SignalIntensity ID
1 1.0035798 6.817374 109
2 11.9438978 11.545993 110
4 3.2894878 9.780420 112
5 4.0170266 9.871984 113
6 1.6310523 9.078186 114
7 1.6405415 8.228931 116
8 1.6625413 8.043536 117
9 0.8489116 6.179346 118
10 7.5312260 10.558180 119
11 7.2832911 10.474533 120
12 0.5732577 4.157294 121
14 0.8149754 6.045174 124
我使用以下代码
means <- colMeans(df) ## to get mean
df <- df[,order(means)] ## to reorder
获取mean
列和order
,但是我的列越来越平均,与我的兴趣相反。我应该怎么做才能重新排序减少列平均值
预期输出
ID SignalIntensity SNR
1 109 6.817374 1.0035798
2 110 11.545993 11.9438978
4 112 9.780420 3.2894878
5 113 9.871984 4.0170266
6 114 9.078186 1.6310523
7 116 8.228931 1.6405415
8 117 8.043536 1.6625413
9 118 6.179346 0.8489116
10 119 10.558180 7.5312260
11 120 10.474533 7.2832911
12 121 4.157294 0.5732577
14 124 6.045174 0.8149754
答案 0 :(得分:1)
order
中的默认设置为decreasing=FALSE
。我们可以将其更改为TRUE
df[order(means, decreasing=TRUE)]
或者得到order
的负值为&#39;表示&#39;
df[order(-means)]