I have a table like this
data.table(ID = c(1,2,3,4,5,6), R = c(\"s\",\"s\",\"n\",\"n\",\"s\",\"s\"), S = c(\"a\",\"a\",\"a\",\"b\",\"b\",
Here's an alternative that uses plain old data.table syntax:
DT[,lapply(split(ID,S),list),by=R] # or... DT[,lapply(split(ID,S),toString),by=R]