DT[DT[,toString(unique(scan(text = v2,sep = ","))),by=v1],on="v1"]
Read 5 items
Read 9 items
v1 v2 V1
1: a 12,13,12,12,10 12, 13, 10
2: b 10,10,11,12 10, 11, 12, 13, 14
3: b 10,10,13,14,12 10, 11, 12, 13, 14
您可以包括
quiet=T
以避免打印读取的项目数:
DT[DT[,toString(unique(scan(text = v2,sep = ",",quiet = T))),by=v1],on="v1"]
v1 v2 V1
1: a 12,13,12,12,10 12, 13, 10
2: b 10,10,11,12 10, 11, 12, 13, 14
3: b 10,10,13,14,12 10, 11, 12, 13, 14
DT[DT[,toString(unique(unlist(strsplit(v2,",")))),by=v1],on="v1"]
v1 v2 V1
1: a 12,13,12,12,10 12, 13, 10
2: b 10,10,11,12 10, 11, 12, 13, 14
3: b 10,10,13,14,12 10, 11, 12, 13, 14
使用
paste
和
unlist
DT[DT[,.(V5=paste(unique(unlist(strsplit(v2,","))),collapse=",")),by=v1],on="v1"]
v1 v2 V5
1: a 12,13,12,12,10 12,13,10
2: b 10,10,11,12 10,11,12,13,14
3: b 10,10,13,14,12 10,11,12,13,14