将几个因子从一列转换为二进制,用于R中的存在/不存在二进制

时间:2017-03-20 02:28:28

标签: r

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

我有两个柱子 - 第一个柱子位于物种被采样的位置,第二个柱子是观察到所有鱼类物种的柱子(在某些情况下是18个物种)。以下是我正在使用的示例:

#Site        Species
#0001-HIL    yellow bullhead, brown bullhead, goldfish
#0001-ETC    yellow bullhead, goldfish, emerald shiner
#0001-BAP    brown bullhead, emerald shiner

我想使用适当的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

(原谅所有#的使用,否则无法创建表。)

我知道重塑,涂抹,融化等的使用,但我真的不知道使用哪个。我有超过10,000行数据。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

我们可以在split'物种列

之后轻松完成
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