将一列中的多个因子转换为R中的存在/不存在二进制

将一列中的多个因子转换为R中的存在/不存在二进制,r,R,我想比较beta物种丰富度,为此我想将我当前的数据转换为存在/不存在二进制代码,以便在betr程序中使用 我有两列——第一列是物种取样的地点,第二列是观察到的所有鱼类物种(某些情况下超过18种)。下面是我正在使用的示例: 我想使用适当的R代码获取上述data.frame并将其转换为矩阵,如下所示: #yellow bullhead___brown bullhead___goldfish___emerald shiner #0001-HIL 1

我想比较beta物种丰富度,为此我想将我当前的数据转换为存在/不存在二进制代码,以便在betr程序中使用

我有两列——第一列是物种取样的地点,第二列是观察到的所有鱼类物种(某些情况下超过18种)。下面是我正在使用的示例:



我想使用适当的R代码获取上述data.frame并将其转换为矩阵,如下所示:

           #yellow bullhead___brown bullhead___goldfish___emerald shiner
#0001-HIL         1                 1             1              0
#0001-ETC         1                 0             1              1
#0001-BAP         0                 1             0              1
(请原谅使用了所有的#,否则我无法创建表)

我知道重塑、sapply、melt等的用法,但我真的不知道该用哪一种。我有超过10000行的数据


任何帮助都将不胜感激。

我们可以在
拆分
物种栏后轻松完成

library(qdapTools)
d1 <- mtabulate(strsplit(as.character(df1$Species), ","))
row.names(d1) <- df1$Site
d1
#          brown bullhead  emerald shiner  goldfish brown bullhead
#0001-HIL               1               0         1              0
#0001-ETC               0               1         1              0
#0001-BAP               0               1         0              1
#         yellow bullhead
#0001-HIL               1
#0001-ETC               1
#0001-BAP               0
库(qdapTools)
d1
library(qdapTools)
d1 <- mtabulate(strsplit(as.character(df1$Species), ","))
row.names(d1) <- df1$Site
d1
#          brown bullhead  emerald shiner  goldfish brown bullhead
#0001-HIL               1               0         1              0
#0001-ETC               0               1         1              0
#0001-BAP               0               1         0              1
#         yellow bullhead
#0001-HIL               1
#0001-ETC               1
#0001-BAP               0