I have the following dataframe (df1)
Type CA AR OR
alpha 2 3 5
beta 1 5 6
gamma 6 2 8
delta 8 1 9
Total 17 11 28
我希望重新排列这个数据框,使其按"Total"行为基础进行降序排列。
结果数据框应该是这样的(df2)。
Type OR CA AR
alpha 5 2 3
beta 6 1 5
gamma 8 6 2
delta 9 8 1
Total 28 17 11
请注意,之前按照"CA, AR, OR"顺序排列的列现在已经根据总行数变为了"OR, CA, AR"(按降序排列)。
为了做到这一点,我尝试使用如下的rank函数:
rank_total <- rank(-df1)
这是给出排名的结果:
[1] 2 1 3
但是,我不知道如何按照这些排名重新排序。
有人知道如何从这里继续吗?或者如果有另一种完全不同的方法来完成此操作,那就太好了!
非常感谢您提前的帮助!!
dput
来展示你正在处理的确切数据结构(就像 akrun 在这个答案底部所做的那样)。 - Frankdf2[,order(-df2["Total",])]
其中df2是df2 <- df[,-1]; rownames(df2) <- df$Type
。 - Frank+1
使索引匹配,这种方式更为方便。 - akrun