R:将分隔的字符串转换为变量

Dav*_*ith 3 r

我有一个数据框,其中一列包含以空格分隔的字符代码列表:

"Ab B C"
""
"X C"
"N Ab F S"
:
Run Code Online (Sandbox Code Playgroud)

我想将其转换为多个列,每个列对应一个不同的值,指示(在1或0中)该值在列表中找到.以上示例给出了期望的结果:

df$Ab = 1,0,0,1
df$B = 1,0,0,0
df$C = 1,0,1,0
df$F = 0,0,0,1
df$N = 0,0,0,1
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

A5C*_*2T1 5

假设你开始:

df <- data.frame(v1 = c("Ab B C", "", "X C", "N Ab F S"))
Run Code Online (Sandbox Code Playgroud)

您可以尝试cSplit_e我的"splitstackshape"包:

library(splitstackshape)
cSplit_e(df, "v1", sep = " ", type = "character", fill = 0)
#         v1 v1_Ab v1_B v1_C v1_F v1_N v1_S v1_X
# 1   Ab B C     1    1    1    0    0    0    0
# 2              0    0    0    0    0    0    0
# 3      X C     0    0    1    0    0    0    1
# 4 N Ab F S     1    0    0    1    1    1    0
Run Code Online (Sandbox Code Playgroud)