r - 我们可以按组使用 data.table setorder 吗?
问题描述
简单的问题:
我想data.table::setorder
在我的 DT 上使用,但我不能按组执行此操作。可能吗 ?
在这个例子中,我订购了我的整个 DT :
DT = data.table(a=rep(c('C', 'A', 'D', 'B', 'E'), each = 4), b=sample(1:1000,20))
setorder(DT, b)
DT
但我想保持固定。
谢谢 !
解决方案
你的意思是像下面这样的吗?
> DT[, .SD[order(b)], a]
a b
1: C 129
2: C 679
3: C 836
4: C 930
5: A 270
6: A 299
7: A 471
8: A 509
9: D 187
10: D 307
11: D 597
12: D 978
13: B 277
14: B 494
15: B 874
16: B 950
17: E 330
18: E 591
19: E 775
20: E 841
> DT[, setorder(.SD, b), a]
a b
1: C 129
2: C 679
3: C 836
4: C 930
5: A 270
6: A 299
7: A 471
8: A 509
9: D 187
10: D 307
11: D 597
12: D 978
13: B 277
14: B 494
15: B 874
16: B 950
17: E 330
18: E 591
19: E 775
20: E 841
推荐阅读
- java - JDialog在javafx中的swingnode内空白
- flutter - 保持按钮禁用直到特定时间 - Flutter
- mysql - beforeCreate 挂钩更改未保存到数据库
- ruby-on-rails - Rails s 因为宝石而不再工作?
- java - 无法自动装配 MongoOperations bean
- java - 如何将 25 年(整数变量)添加到 java 中的日期字段
- android - 如何在活动 B 中单击按钮时在活动 A 中创建卡片视图
- r - 为每个类别分配最小值和最大值,而不按类别分组
- python - 从列表列表创建嵌套字典
- c# - ASP.NET MVC 如何使一种方法只能由一个线程同时执行?