【问题标题】:Can you sort descending using keyby =?你可以使用keyby =降序排序吗?
【发布时间】:2021-06-03 12:12:38
【问题描述】:

我想使用 1 个简短语句对我的表 mytable 进行子集化、使用聚合函数和排序(降序)。例如,我正在计算价格 > 100 按颜色分组的行,并按颜色降序对其进行排序。 我有:

mytable2 <- mytable[price > 100, .N, by = color]
mytable2[order(-color)]

但我宁愿一步到位。比如:

mytable[price > 100, .N, keyby = color]

但这是升序。简单地将- 放在颜色前面会产生错误。还有其他方法吗?谢谢。

【问题讨论】:

标签: r sorting data.table


【解决方案1】:

为什么不使用data.tablechaining 命令呢? 像下面这样的东西应该可以一步到位。

> library(data.table)
> mytable <- data.table(price = seq(50,150,10), 
+                       color = sample(x= c("Red","Green","Blue"),size = 11,replace = T))
> 
> mytable[ price > 100,.SD ,by = .(color)][order(-color)]
   color price
1:   Red   110
2:   Red   130
3: Green   120
4: Green   150
5:  Blue   140
> ## As Color is a character variable it will be (reversely) sorted alphabatically.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2017-08-08
    • 2019-10-24
    • 2016-06-02
    相关资源
    最近更新 更多