如何在许多列中构造因子变量

时间:2012-05-20 00:41:04

标签: r

我从调查中收集了数据。一个因素变量是这样的:

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

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