给定一个 data.table,我想提取累积的唯一元素,直到达到三个唯一值,然后重置并恢复:
y <- data.table(a=c(1, 2, 2, 3, 3, 4, 3, 2, 2, 5, 6, 7, 9, 8))
所需的输出 unique_acc_roll_3 为:
a unique_acc_roll_3
1 1
2 1 2
2 1 2
3 1 2 3
3 1 2 3
4 4 #4 is the forth element, so it resets and start again
3 3 4
2 2 3 4
2 2 3 4
5 5 #5 is the forth element, so it resets and start again
6 5 6
7 5 6 7
9 9 #9 is the forth element, so it resets and start again
8 8 9
因为它递归地引用回来,所以我真的陷入了困境......真实数据很大,所以 data.table 解决方案会很棒。