3

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

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
4

1 回答 1

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
于 2012-05-20T01:05:53.633 回答