我希望过滤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方法。
答案 0 :(得分:0)
我们可以创建一个行索引来对数据集进行子集化
DT[DT[, .I[V3 == max(V3)], by = V2]$V1]
如果每个&#39; V2&#39;
只有一个最大元素DT[, .I[which.max(V3)], by = V2]$V1]