将逗号分隔的字符串拆分为布尔列

Phi*_*yfi 2 r

我有:

id choice
----------
1  "a,b,c"
2  "c"
3  "a,c"
4  "b,c"
Run Code Online (Sandbox Code Playgroud)

我需要

id a b c
---------
1  1 1 1
2  0 0 1
3  0 0 1
4  0 1 1
Run Code Online (Sandbox Code Playgroud)

(或等效的TRUE/FALSE值)

在R中有没有办法做到这一点?我已经调查过,strsplit但似乎没有帮助.

A5C*_*2T1 6

这正是cSplit_e我的"splitstackshape"包的设计目的.

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
Run Code Online (Sandbox Code Playgroud)

这使用DF来自@ G.Grothendieck的答案作为输入:

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)
Run Code Online (Sandbox Code Playgroud)