问题描述
我正在尝试使用 BiodiveristyR 中的 add.spec.score
包计算“cproj”,即每个物种的投影值。然而,我的数据点是零膨胀的。我计算了 BrayCurtis 指数,但它不会让我使用 cmdscale,因为 BC 分数会在数据集中生成 NAN。但是,如果我在整个数据集中添加一个虚拟变量“1”,问题就会消失。但是,我确定这是否是处理此问题的正确方法。包中是否还有其他内容可以让我处理此类错误?
library(vegan)
library(BiodiversityR)
library(ggplot2)
set.seed(111)
sp1 <- sample(0:1,72,replace = TRUE)
sp2 <- sample(0:1,replace = TRUE)
sp3 <- sample(0:1,replace = TRUE)
sp4 <- sample(0:1,replace = TRUE)
wide.site <- data.frame(sp1,sp2,sp3,sp4)
wide.site <- wide.site + 1 #If I don't add 1 to this data,the cmdscale in third line from here will not work
species.db <- vegdist(wide.site,method = "bray")
species.db <- vegdist(wide.site,method = "bray",upper = TRUE,diag = TRUE)
species.pcoa <- cmdscale(species.db,eig = TRUE,k = 3)
fish <- wide.site
speciesREL <- fish
for(i in 1:nrow(fish)){
speciesREL[i,] = fish[i,] / sum(fish[i,])
}
species.pcoa <- BiodiversityR::add.spec.scores(species.pcoa,speciesREL,method = "pcoa.scores")
species.pcoa$cproj
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)