将两列数据帧转换为数字矩阵

时间:2014-05-11 13:20:39

标签: r matrix transformation

我有以下数据:

A    B
1    101
1    102
3    104
4    104

并希望将其转化为:

     101   102   104
1      1     1     0
3      0     0     1
4      0     0     1

这个转变是什么,我应该寻找什么样的包?

1 个答案:

答案 0 :(得分:2)

您可以使用基础R中的xtabs来执行此操作:

df <-  read.table(text="A    B
+ 1    101
+ 1    102
+ 3    104
+ 4    104", header=T)

xtabs(~ A + B, df)

#   B
#A   101 102 104
#  1   1   1   0
#  3   0   0   1
#  4   0   0   1

另一种方法是使用table

table(df)

#   B
#A   101 102 104
#  1   1   1   0
#  3   0   0   1
#  4   0   0   1