我的数据框看起来像这样:
ID cat1 cat2 cat3
1 cat1_A cat2_A cat3_A
2 cat1_B cat2_A cat3_B
3 cat1_B cat2_B cat3_A
我现在想将此转换为一种转置表,使用每列中的所有值作为新列名称,并将相应列名称的0/1(存在/不存在)调用为新值:
ID cat1_A cat1_B cat2_A cat2_B cat3_A cat3_B
1 1 0 1 0 1 0
2 0 1 1 0 0 1
3 0 1 0 1 1 0
我希望能清楚我想做什么,不知道如何以更好的方式解释它。任何帮助将不胜感激! 谢谢!
答案 0 :(得分:2)
我们可以使用mtabulate
qdapTools
res <- cbind(df1[1], mtabulate(as.data.frame(t(df1[-1]))))
row.names(res) <- NULL
res
# ID cat1_A cat2_A cat3_A cat1_B cat3_B cat2_B
#1 1 1 1 1 0 0 0
#2 2 0 1 0 1 1 0
#3 3 0 0 1 1 0 1