这个问题在这里已经有了答案:




8年前关闭。






我正在尝试按几列对 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

关于r - 按 r 中的列对数据框进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11599910/

10-12 17:07