相关疑难解决方法(0)

如何订购我的数据帧lexicographicaly

我有一个以下数据框架

a = data.frame(a=c(1,2,3,4,5,6,7),b=c(1,2,3,10,12,21,4),c=c(1,2,10,11,"X","Y",3))
> a
  a  b  c
1 1  1  1
2 2  2  2
3 3  3 10
4 4 10 11
5 5 12  X
6 6 21  Y
7 7  4  3
Run Code Online (Sandbox Code Playgroud)

我想按字典顺序对整个数据框进行排序,以便输出(例如,列"c")应该是这样的

> a[,"c"]
[1] 1  2  3 10 11  X  Y
Run Code Online (Sandbox Code Playgroud)

我试过了,我正在寻找不同的答案

indata <- a[do.call(order,a[,c("c","a","b")]),]
> indata[,"c"]
[1] 1  10 11 2  3  X  Y
Levels: 1 10 11 2 3 X Y
Run Code Online (Sandbox Code Playgroud)

我尝试了gtools,mixedorder包并在一列上工作正常:

> a[mixedorder(a$c),]
  a  b  c
1 1  1  1 …
Run Code Online (Sandbox Code Playgroud)

sorting r r-faq

8
推荐指数
1
解决办法
3284
查看次数

标签 统计

r ×1

r-faq ×1

sorting ×1