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