我们可以使用
mtabulate
从…起
library(qdapTools)
library(qdapTools)
d1 <- mtabulate(as.data.frame(t(df1[-1])))
`row.names<-`(cbind(df1[1],d1[grep("^Q", names(d1))]), NULL)
# ID Q-1_A-4 Q-2_A-2 Q-1_A-35 Q-1_A-14 Q-2_A-4 Q-2_A-3
#1 122 1 0 0 0 0 0
#2 123 1 1 0 0 0 0
#3 124 0 1 1 0 0 0
#4 125 0 0 0 1 1 0
#5 126 0 1 0 1 0 0
#6 127 1 0 0 0 0 1
数据
df1 <- structure(list(ID = 122:127, Q_1 = c("Q-1_A-4",
"Q-1_A-4", "Q-1_A-35",
"Q-1_A-14", "Q-1_A-14", "Q-1_A-4"), Q_2 = c("",
"Q-2_A-2", "Q-2_A-2",
"Q-2_A-4", "Q-2_A-2", "Q-2_A-3"), Q_3 = c(FALSE, FALSE,
TRUE,
FALSE, FALSE, FALSE), Q_4 = c(FALSE, TRUE, FALSE, TRUE, FALSE,
FALSE)), .Names = c("ID", "Q_1", "Q_2", "Q_3", "Q_4"),
class = "data.frame", row.names = c(NA, -6L))