我有:
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但似乎没有帮助.
这正是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)
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |