我正在使用简单的示例数据:
df <- data.frame(answers = c(1,2,5,4,3,2,6,1,4))
answers
1 1
2 2
3 5
4 4
5 3
6 2
7 6
8 1
9 4
然后创建空向量
df$recode <- list(rep(0, 6))
answers recode
1 1 0, 0, 0, 0, 0, 0
2 2 0, 0, 0, 0, 0, 0
3 5 0, 0, 0, 0, 0, 0
4 4 0, 0, 0, 0, 0, 0
5 3 0, 0, 0, 0, 0, 0
6 2 0, 0, 0, 0, 0, 0
7 6 0, 0, 0, 0, 0, 0
8 1 0, 0, 0, 0, 0, 0
9 4 0, 0, 0, 0, 0, 0
然后根据你答案中的信息来操作它们。
df$recode <- Map(function(x,y) `[<-`(x,y,1), x = df$recode, y = df$answers)
answers recode
1 1 1, 0, 0, 0, 0, 0
2 2 0, 1, 0, 0, 0, 0
3 5 0, 0, 0, 0, 1, 0
4 4 0, 0, 0, 1, 0, 0
5 3 0, 0, 1, 0, 0, 0
6 2 0, 1, 0, 0, 0, 0
7 6 0, 0, 0, 0, 0, 1
8 1 1, 0, 0, 0, 0, 0
9 4 0, 0, 0, 1, 0, 0