【发布时间】:2022-01-17 08:24:30
【问题描述】:
我有一个通过物种相互作用(三营养链)表示物种的邻接矩阵:
mat = matrix(c(0,1,0,
0,0,1,
0,0,0), nrow=3, byrow = T,
dimnames = list(c("sp1","sp2","sp3"),
c("sp1","sp2","sp3")))
以及包含物种丰度的数据框:
comm = t(data.frame(sp1=100,
sp2=20,
sp3=5))
使用上述方法,有没有一种有效的方法来创建基于个体的邻接矩阵?
in.mat = matrix(0, nrow = sum(comm),
ncol = sum(comm),
byrow = T,
dimnames = list(c(rep("sp1",100),rep("sp2",20),rep("sp3",5)),
c(rep("sp1",100),rep("sp2",20),rep("sp3",5))))
所以 sp3 的所有个体都与 sp2 的所有个体以及 sp1 的所有个体相关联。 我会很感激任何指示,我没有设法找到类似的问题,也许是因为我没有使用适当的术语。
【问题讨论】:
-
我不太确定您要做什么,您能否详细说明
in.mat的所需形状?你为什么使用sum(comm)?nrow(comm),ncol(comm)不是你想要的吗? -
所需的输出是所有 125 个人根据他们所属的组 (sp1,sp2,sp3) 进行交互的方阵。
-
请注意,comm 是一个矩阵,而不是一个数据框。
标签: r igraph adjacency-matrix