【发布时间】:2018-11-16 13:57:27
【问题描述】:
我希望过滤 data.table 以获得组的最大值。
DT <- data.table(V1 = c(1L, 2L),
V2 = LETTERS[1:3],
V3 = round(rnorm(4), 4),
V4 = 1:12)
V1 V2 V3 V4
1: 1 A -0.1346 1
2: 2 A 0.2309 4
3: 1 A 0.7067 7
4: 2 A -1.0082 10
5: 2 B -1.0082 2
6: 1 B -0.1346 5
7: 2 B 0.2309 8
8: 1 B 0.7067 11
9: 1 C 0.7067 3
10: 2 C -1.0082 6
11: 1 C -0.1346 9
12: 2 C 0.2309 12
我试过了,但没有骰子:
DT[,max(V3), by =.(V2)]
V2 V1
1: A 1.2281
2: B 1.2281
3: C 1.2281
没有一个循环,我该如何处理?我更喜欢 data.table 方法。
【问题讨论】:
-
有什么问题?一切似乎都按预期工作。当您创建数据表时,它的大小为 12(因为 V4),但您有 4 个随机值和 3 个字母,因此这些值会重复,因此每个字母的最大值将始终相同。
标签: r data.table subset