向整个数据集添加虚拟值是否是处理 R素食/生物多样性包中零膨胀的 Bray-Curtis 指数的正确方法?

问题描述

我正在尝试使用 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 (将#修改为@)