从data.frame创建二进制矩阵

时间:2014-03-06 10:03:17

标签: r matrix binary dataframe

如何从带有两列的data.frame创建二进制矩阵,其中第一列表示例如:物种和其他地区? data.frame采用高格式,如下所示

species region
species1 1
species1 2
species1 3
species2 2
species2 4
species2 5
species2 6
species3 1
species3 2
species4 5
species5 3
species5 4

矩阵将所有唯一种类作为行,所有唯一区域作为列。对于存在的物种,矩阵将填充1s,对于不存在的物种,矩阵将填充0s,如下所示

         1  2  3  4  5  6
species1 1  1  1  0  0  0
species2 0  1  0  1  1  1
species3 1  1  0  0  0  0
species4 0  0  0  0  1  0
species5 0  0  1  1  0  0

非常感谢任何指示,谢谢!

2 个答案:

答案 0 :(得分:3)

您正在寻找文档为here

的函数table

如果您的data.frame是df,则只需执行

table(df)

答案 1 :(得分:3)

另一种可能性:

xtabs(~species+region, data=tab)