我从调查中收集了数据。一个因素变量是这样的:
Column1 Column2 Column3 Column4 Column5
A B C
B C
A B C D E
A C E
C E
B D E
换句话说,类分布在许多不同的变量中。我想为每个类(A,B,C,D,E)创建一个二进制变量(1或0)。然而,我不清楚如何做到这一点。我该怎么办?
修改
输出将是这样的:
A B C D E
1 1 1 0 0
0 1 1 0 0
1 1 1 1 1
1 0 1 0 1
0 0 1 0 1
0 1 0 1 1
答案 0 :(得分:5)
> data <- data.frame(Column1=c("A","B","A"),Column2=c("B","A","A"))
> data
Column1 Column2
1 A B
2 B A
3 A A
> f <- unique(unlist(data))
> tb <- data.frame(sapply(f, function(x) (rowSums(data == as.character(x)) != 0)*1))
> names(tb) <- f
> tb
A B
1 1 1
2 1 1
3 1 0