如果该组中的最大值大于某个值,则尝试过滤data.table中该组中的所有行。下面是我如何在DPLY中进行操作以及如何在data.table中的两个步骤中使它工作。
SELECT e.*, a.*
FROM episodes e JOIN
assets a
ON e.id = a.episode_id
WHERE a.last_updated = (SELECT MAX(a2.last_updated)
FROM assets a2
WHERE a2.episode <> '0' AND
a2.episode_id <> '0'
a2.show_id = a.show_id
)
有没有一种方法可以一步完成而不在数据集中创建列?我所能找到的就是对一个子集进行分组以获得一个组中的一个特定值,而不是返回该组中符合条件的所有行。
答案 0 :(得分:7)
我们可以使用.I
获取行索引,提取索引列和子集
df[df[, .I[max(x) < 11], y]$V1]
# x y
#1: 1 1
#2: 4 1
#3: 7 1
#4: 10 1
或者另一个选择是.SD
df[, .SD[max(x) < 11], y]