metaMDS 的 adonis 和 ggplot2 错误的 Permanova 错误

Permanova Error with adonis & ggplot2 error for metaMDS

我正在尝试 运行 对跨寄主植物物种的昆虫群落组成进行 permanova。无论我们尝试过什么,它都不起作用,我无法弄清楚为什么不起作用。我知道 permanova 可以处理零,但我们确实有很多,这可能是问题所在吗?

我们收到此错误: if (any(lhs < -TOL)) stop("dissimilarities must be non-negative") 错误: TRUE/FALSE 需要

的缺失值

这是我们尝试过的:

library(vegan)

#insect community composition on 3 different species of milkweed
lilly.data<-read.csv("https://raw.githubusercontent.com/lmgermeroth/Garden-sampling-SU21/main/backyard2021_main_forR.4.22.22.csv")

lilly.data$SPECIES<-as.factor(lilly.data$SPECIES)

# creating a species data matrix so I can tell the model how to calculate the community composition, but first, make them numeric.
lilly.data[6:151] <- lapply(lilly.data[6:152], as.numeric)
#Create the matrix of insect species
lilly.species<-as.matrix(lilly.data[,8:152])

lilly.dist<-vegdist(lilly.species,"bray")
#get a warning.....but it runs

lilly.permanova<-adonis2(lilly.dist ~ SPECIES,permutations=999,method='bray',data=lilly.data)
# why doesn't this work?

其次,我们正在尝试创建排序图,但这也行不通,我们不确定原因。可能与上述问题有关?

library(ggplot2)
ord<-metaMDS(lilly.species)
#this is where we throw the error....

scores<-scores(ord,display='sites')

scores<-cbind(as.data.frame(scores), Treatment=lilly.data$SPECIES)

center<-aggregate(cbind(NMDS1,NMDS2)~Treatment,data=scores,FUN=mean)

seg<-merge(scores,setNames(center,c('Species','oNMDS1','oNMDS2')),by='Treatment',sort=FALSE)

ggplot(scores,aes(x=NMDS1,y=NMDS2,colour=Treatment))+
  geom_segment(data=seg,
               mapping=aes(xend=oNMDS1,yend=oNMDS2))+
  geom_point(data=cent,size=8)+
  geom_point()+
  coord_fixed()

这里的错误是: 平方根变换 威斯康星双重标准化 cmdscale(dist, k = k) 错误:'d' 中不允许使用 NA 值 此外: 警告信息: 1: 在 distfun(comm, method = distance, ...) 中: 你有空行:它们的不同点在方法“bray”中可能没有意义 2:在 distfun(comm, method = distance, ...) 中:结果中缺少值

如有任何建议,我们将不胜感激!

您不能拥有检测到零种的站点。制作社区数据矩阵后,您应该删除所有包含零种的行:

lilly.species <- lilly.species[rowSums(!lilly.species) < ncol(lilly.species), ]

那么剩下的所有代码应该都可以正常工作。