可能重复:
如何在R中按列对数据框进行排序
我正在尝试按多个列对数据框进行排序
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"))]
然而这并没有任何作用。有什么想法吗?谢谢。
可能重复:
如何在R中按列对数据框进行排序
我正在尝试按多个列对数据框进行排序
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"))]
with
时,不应将Sp1
引用。这会始终返回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
您还可以尝试使用doBy
包内的另一个内置函数:
# install.packages('doBy')
library(doBy)
orderBy(Sp1~Sp2, data=df)
Sp1 Sp2
A03 2 1
A02 4 2
A01 7 6