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