我有非常大data.table
的东西要以这种方式修剪:
只有一个唯一的 id
如果同一日志中有除“X”之外的任何其他数据,则其他应保留
如果只有 X,那么第一个 X 应该保留
如果除了“X”之外还有不止一个,那么所有这些都应该保留,用逗号分隔,但不是“X”。
样本数据集:
library(data.table)
dt <- data.table(
id=c(1,1,2,3,3,4,4,4,5,5),
log=c(11,11,11,12,12,12,12,12,13,13),
art=c("X", "Y", "X", "X", "X", "Z", "X", "Y","X", "X")
)
dt
id log art
1: 1 11 X
2: 1 11 Y
3: 2 11 X
4: 3 12 X
5: 3 12 X
6: 4 12 Z
7: 4 12 X
8: 4 12 Y
9: 5 13 X
10: 5 13 X
所需输出:
id log art
1 11 Y
2 11 Y
3 12 Z,Y
4 12 Z,Y
5 13 X