首先根据列对数据帧进行排序,然后根据r中的另一列对数据帧进行排序

时间:2015-04-16 08:55:56

标签: r sorting dataframe

我有一个类似于以下内容的数据框

foo <- read.table(text="1 VA
  1 PE
  1 CE
  4 PE
  3 PE
  3 CE
  2 PE")

现在我想先根据第一行对数据帧进行排序,我可以通过

来完成
foo[order(foo$V1),]

给出了结果:

   V1 V2
 1  1 VA
 2  1 PE
 3  1 CE
 7  2 PE
 5  3 PE
 6  3 CE
 4  4 PE

但我现在的问题是我想保持V1中的排序结果相同,我想根据第二列对其进行排序。结果应该类似于

   V1 V2
 1  1 CE
 2  1 PE
 3  1 VA
 7  2 PE
 5  3 CE
 6  3 PE
 4  4 PE

其中第一列不是第二列,V2也按类似于

的顺序排序
sort -k1 -k2 

in unix

1 个答案:

答案 0 :(得分:1)

您可以将包dplyrarrange一样使用

library(dplyr)
arrange(foo, V1,V2) # sort according to V1 first, then V2
  V1 V2
1  1 CE
2  1 PE
3  1 VA
4  2 PE
5  3 CE
6  3 PE
7  4 PE