3

可能重复:
如何在 R 中按列对数据框进行排序

我正在尝试按几列对 data.frame 进行排序

df<-data.frame("Sp1"=c(7,4,2),"Sp2"=c(6,2,1))
row.names(df)<-c("A01","A02","A03")

    Sp1 Sp2
A01   7   6
A02   4   2
A03   2   1

#I am using    

df[with(df, order("Sp1"))]

然而,这没有任何作用。任何想法为什么?谢谢

4

2 回答 2

6

Sp1使用时不应引用with. 这总是会返回1,因此只会返回您的第一行。试试这个:

> df[order(df$Sp1),] 
    Sp1 Sp2
A03   2   1
A02   4   2
A01   7   6
> df[with(df, order(Sp1)), ]
    Sp1 Sp2
A03   2   1
A02   4   2
A01   7   6
于 2012-07-22T11:48:20.960 回答
2

您还可以尝试在包中使用另一个内置函数doBy

# install.packages('doBy')
library(doBy)
orderBy(Sp1~Sp2, data=df)
    Sp1 Sp2
A03   2   1
A02   4   2
A01   7   6
于 2012-07-22T17:25:06.887 回答