按r中的列排序数据帧

可能重复:
如何按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"))]

然而这没有做任何事。 任何想法为什么? 谢谢


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

你也可以尝试在doBy包中使用另一个bult-in函数:

# install.packages('doBy')
library(doBy)
orderBy(Sp1~Sp2, data=df)
    Sp1 Sp2
A03   2   1
A02   4   2
A01   7   6
链接地址: http://www.djcxy.com/p/70849.html

上一篇: Sorting data frames by columns in r

下一篇: how to order alphabetically rows of a data frame?