【问题标题】:orderBy with changes in decreasing and increasing sortingorderBy 随着递减和递增排序的变化
【发布时间】:2010-11-01 12:56:09
【问题描述】:

是否有一种标准方法可以按几列对 data.frame 进行排序,但会随着减少或增加的变化而变化?例如,您可能希望按一个变量(递减)和下一个变量(递增)对 data.frame 进行排序。

有没有类似的东西:

mydf[ order(mydf$myvariable,mydf$myvariable2,decreasing=c(FALSE,TRUE)), ]

【问题讨论】:

  • 您是否阅读了order 的帮助?示例部分中有有用的代码(使用xtfrm 表示字符变量)。

标签: r


【解决方案1】:
library(plyr)
mydf[with(mydf, order(myvariable, desc(myvariable2)), ]

# Or, a little less typing:
arrange(mydf, myvariable, desc(myvariable2))

【讨论】:

  • 我喜欢这两个答案,但我承认我有点偏向 plyr 包;)
【解决方案2】:

快速解决方法:

 mydf[ order(mydf$myvariable,-mydf$myvariable2,decreasing=F), ]

对于因子、字符串等:

 mydf[ order(mydf$myvariable,-xtfrm(mydf$myvariable2),decreasing=F), ]

【讨论】:

  • xtfrm 是你要找的函数
【解决方案3】:
library(Deducer)
sort(mtcars,by = ~ cyl - mpg)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    相关资源
    最近更新 更多