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

标签 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 

在unix中

最佳答案

您可以将包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

关于r - 首先根据 r 中的一列对 dataframe 进行排序,然后根据另一列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669861/

相关文章:

r - 匿名函数中的rlang::sym

java - 按运行时间对歌曲集合进行排序

python - Pandas 按逻辑日期对数据框进行排序

r - 如何为满足条件的某些组绘制 R 中的图形?

r - 与 cowplot 和 plot_grid 共享面板边框

javascript - 导出数组中元素的所有可能组合

arrays - 基于前 n 行在 groupby() 中创建新列的更短方法

python - 使用多索引从旋转数据帧获取原始数据帧

R RecordLinkage 包,了解 alpha 和 beta 错误

javascript - 在 Chrome 中对对象数组进行排序