我如何使用data.table执行以下操作?
xy <- read.table(text = "Subject Product
1 ProdA
1 ProdB
1 ProdC
2 ProdB
2 ProdC
2 ProdD
3 ProdA
3 ProdB", header = TRUE)
aggregate(Product ~ Subject, FUN = paste, collapse = ";", data = xy)
使用dcast,我得到了多个带有NA的列,但是我需要使用“ +”分隔符折叠每个主题的所有列,并删除NA值。
dcast(xy, Subject ~ Product, value.var = "Product")
我们通过总结而不是用dcast
进行data.table
分组
library(data.table)
setDT(xy)[, .(Product = paste(Product, collapse=";")), by = Subject]