假设我有以下数据集:
library(data.table)
dt <- data.table(x = c(1, 2, 4, 5, 2, 3, 4))
> dt
x
1: 1
2: 2
3: 4
4: 5
5: 2
6: 3
7: 4
我想在第 4 行之后截止,因为那时出现了第一个重复项(数字 2)。
预期输出:
x
1: 1
2: 2
3: 4
4: 5
不用说,我不是在寻找dt[1:4, ,][]
因为真实的数据集更加“复杂”。
我尝试过shift()
, .I
,但没有成功。
一个想法是:dt[x %in% dt$x[1:(.I - 1)], .SD, ][]
.
也许我们可以使用duplicated
dt[seq_len(which(duplicated(x))[1]-1)]
# x
#1: 1
#2: 2
#3: 4
#4: 5
或者按照@lmo 的建议
dt[seq_len(which.max(duplicated(dt))-1)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)