r - 如何按一列降序和一升序对数据框进行排序?

标签 r sorting dataframe

我有一个数据框,看起来像这样:

    P1  P2  P3  T1  T2  T3  I1  I2
1   2   3   5   52  43  61  6   "b"
2   6   4   3   72  NA  59  1   "a"
3   1   5   6   55  48  60  6   "f"
4   2   4   4   65  64  58  2   "b"

我想按 I1 降序排序,将 I1 中相同值的行按 I2 升序排序,得到的行顺序为 1 3 4 2。但 order 函数似乎只采用一个 decreasing 参数,对于所有排序向量,该参数为 TRUEFALSE立刻。如何正确排序?

最佳答案

我使用此代码来生成您想要的输出。这就是你所追求的吗?

rum <- read.table(textConnection("P1  P2  P3  T1  T2  T3  I1  I2
2   3   5   52  43  61  6   b
6   4   3   72  NA  59  1   a
1   5   6   55  48  60  6   f
2   4   4   65  64  58  2   b"), header = TRUE)
rum$I2 <- as.character(rum$I2)
rum[order(rum$I1, rev(rum$I2), decreasing = TRUE), ]

  P1 P2 P3 T1 T2 T3 I1 I2
1  2  3  5 52 43 61  6  b
3  1  5  6 55 48 60  6  f
4  2  4  4 65 64 58  2  b
2  6  4  3 72 NA 59  1  a

关于r - 如何按一列降序和一升序对数据框进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7793295/

相关文章:

algorithm - 这是什么排序算法?

python - 如何使用变量将数据帧传递给函数?

r - 如何用 R data.frame 中的对应多个模式替换列名中的多个模式?

r - 将具有管道分隔数据的列转换为伪变量

iPhone CoreData - 如何获取托管对象,并对它们进行排序而忽略大小写?

javascript - Javascript 中的偏移数组顺序与 Backstretch 插件一起使用

R插入符包: data partition into training/test sets before trainControl?

重新排序因子水平以在多面包裹条形图中正确显示

r - [] 和 $ 运算符之间用于子集化的区别

python - 按组计算连续重复项