模拟字符列并查找唯一值

我有一个具有以下结构的数据框


test <- data.frame(col = c('a; ff; cc; rr;', 'rr; a; cc; e;'))

现在,我想从中创建一个数据框,其中包含测试数据框中每个唯一值的命名列。唯一值是以“;”结尾的值 字符,并以空格开头,不包括空格。然后,对于该列中的每一行,我希望用1或0填充虚拟列。如下所示


data.frame(a = c(1,1), ff = c(1,0), cc = c(1,1), rr = c(1,0), e = c(0,1))


  a ff cc rr e

1 1  1  1  1 0

2 1  0  1  1 1

我尝试使用for循环和该列中的唯一值创建df,但情况变得一团糟。我有一个向量,其中包含列的唯一值。问题是如何创建1和0。我尝试了一些mutate_all()功能,grep()但是没有用。


小怪兽爱吃肉
浏览 534回答 3
3回答

慕妹3242003

我会用splitstackshape和mtabulate从qdapTools包装中得到一个衬里,即library(splitstackshape)library(qdapTools)mtabulate(as.data.frame(t(cSplit(test, 'col', sep = ';', 'wide'))))#&nbsp; &nbsp;a cc ff rr e#V1 1&nbsp; 1&nbsp; 1&nbsp; 1 0#V2 1&nbsp; 1&nbsp; 0&nbsp; 1 1它也可以填满,splitstackshape例如@ A5C1D2H2I1M1N2O1R2T1在评论中提到的内容,cSplit_e(test, "col", ";", mode = "binary", type = "character", fill = 0)
打开App,查看更多内容
随时随地看视频慕课网APP