分隔并计算具有多个值的列

Ade*_*sot 1 r

a、b 和 c 是句子

Column
a,b,c
b,c
a,c
c
Run Code Online (Sandbox Code Playgroud)

我想分开并计算每个值,以获得:

column a   column b   column c
yes         yes        yes
no          yes        yes
yes         no         yes
no          no         yes
Run Code Online (Sandbox Code Playgroud)

akr*_*run 6

我们可以用 分割列strsplit,用于mtabulate获取频率计数并将二进制值更改为“是”、“否”

library(qdapTools)
out <- mtabulate(strsplit(df1$Column, ","))
out[] <-  c("no", "yes")[as.matrix(out) + 1]
Run Code Online (Sandbox Code Playgroud)

-输出

out
#    a   b   c
#1 yes yes yes
#2  no yes yes
#3 yes  no yes
#4  no  no yes
Run Code Online (Sandbox Code Playgroud)

数据

df1 <- structure(list(Column = c("a,b,c", "b,c", "a,c", "c")), 
class = "data.frame", row.names = c(NA, 
-4L))
Run Code Online (Sandbox Code Playgroud)