我有一個具有以下結構的數據框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 e1 1 1 1 1 02 1 0 1 1 1我嘗試使用for循環和該列中的唯一值創建df,但情況變得一團糟。我有一個向量,其中包含列的唯一值。問題是如何創建1和0。我嘗試了一些mutate_all()功能,grep()但是沒有用。
3 回答

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
我會用splitstackshape和mtabulate從qdapTools包裝中得到一個襯里,即
library(splitstackshape)
library(qdapTools)
mtabulate(as.data.frame(t(cSplit(test, 'col', sep = ';', 'wide'))))
# a cc ff rr e
#V1 1 1 1 1 0
#V2 1 1 0 1 1
它也可以填滿,splitstackshape例如@ A5C1D2H2I1M1N2O1R2T1在評論中提到的內容,
cSplit_e(test, "col", ";", mode = "binary", type = "character", fill = 0)
- 3 回答
- 0 關注
- 602 瀏覽
添加回答
舉報
0/150
提交
取消