This is exactly what cSplit_e
from my "splitstackshape" package is designed to do.
library(splitstackshape)
cSplit_e(DF, "choice", sep = ",", mode = "binary",
type = "character", fill = 0, drop = TRUE)
# id choice_a choice_b choice_c
# 1 1 1 1 1
# 2 2 0 0 1
# 3 3 1 0 1
# 4 4 0 1 1
This uses DF
from @G.Grothendieck's answer as the input:
Lines <- 'id choice
----------
1 "a,b,c"
2 "c"
3 "a,c"
4 "b,c"'
DF <- read.table(text = Lines, header = TRUE, comment = "-", as.is = TRUE)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…