【问题标题】:Sorting data frames by columns in r [duplicate]按r中的列对数据帧进行排序[重复]
【发布时间】:2012-07-20 22:39:09
【问题描述】:

可能重复:
How to sort a dataframe by column(s) in 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"))]

但是这什么也没做。任何想法为什么?谢谢

【问题讨论】:

  • 您应该使用 library(plyr) 和命令 -arrange(df, Sp1, Sp2) 。易于记忆,速度也很快。

标签: r


【解决方案1】:

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

# install.packages('doBy')
library(doBy)
orderBy(Sp1~Sp2, data=df)
    Sp1 Sp2
A03   2   1
A02   4   2
A01   7   6

【讨论】:

    【解决方案2】:

    当您使用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
    

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 2014-12-20
      • 2012-06-26
      • 2018-02-20
      • 1970-01-01
      • 2021-10-05
      • 2021-08-03
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多