R与PRIMER v6的nMDS结果差异及应力值不同的原因问询
PRIMER v6与R
metaMDS的nMDS结果差异原因排查 我使用PRIMER v6对物种数据绘制了nMDS图,之后参考R教程用以下代码执行相同分析:
dat <- Sp_Data[1:15,2:8] dat <- dat %>% filter_all(any_vars(. != 0)) m_dat <- as.matrix(dat, labels = T) mds <- metaMDS(m_dat, distance = "bray") # ggplot #extract NMDS scores (x and y coordinates) data.scores = as.data.frame(scores(mds)) #add columns to data frame pt <- Sp_Data[which(rowSums(Sp_Data[1:15,2:8])>0),] data.scores$Condition = pt$Condition head(data.scores) library(ggplot2) xx = ggplot(data.scores, aes(x = NMDS1, y = NMDS2)) + geom_point(size = 4, aes( shape = Condition))+ theme(axis.text.y = element_text(colour = "black", size = 12, face = "bold"), axis.text.x = element_text(colour = "black", face = "bold", size = 12), legend.text = element_text(size = 12, face ="bold", colour ="black"), legend.position = "right", axis.title.y = element_text(face = "bold", size = 14), axis.title.x = element_text(face = "bold", size = 14, colour = "black"), legend.title = element_text(size = 14, colour = "black", face = "bold"), panel.background = element_blank(), panel.border = element_rect(colour = "black", fill = NA, size = 1.2), legend.key=element_blank()) + labs(x = "NMDS1", y = "NMDS2", shape = "Condition") + scale_colour_manual(values = c("#009E73", "#E69F00")) xx
得到的nMDS图与PRIMER的结果差异极大,且应力值差距明显:R中计算的应力值为0.03435446,远低于PRIMER的结果。
附压缩后的Sp_Data数据:
structure(list(SiteConditionReplicate = c("JU1One", "JU1Two", "JU1Three", "JU1Four", "JU1Five", "JSOne", "JSTwo", "JSThree", "JSFour", "JSFive", "JU2One", "JU2Two", "JU2Three", "JU2Four", "JU2Five", "PU1One", "PU1Two", "PU1Three", "PU1Four", "PU1Five", "PSOne", "PSTwo", "PSThree", "PSFour", "PSFive", "PU2One", "PU2Two", "PU2Three", "PU2Four", "PU2Five"), `Camptandrium sexdentatum` = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Diogenidae = c(0, 4, 0, 0, 1, 53, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), `Nassarius globasus` = c(0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), `Tellina sp` = c(0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), `Marcia opima` = c(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Nereidae = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 17, 18, 17, 12, 4, 3, 12, 1, 6, 0, 0, 0, 0, 0), Maldanidae = c(4, 5, 3, 2, 2, 1, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ...9 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Site = c("J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "P", "P", "P", "P", "P", "P", "P", "P", "P", "P", "P", "P", "P", "P", "P"), Condition = c("U1", "U1", "U1", "U1", "U1", "S", "S", "S", "S", "S", "U2", "U2", "U2", "U2", "U2", "U1", "U1", "U1", "U1", "U1", "S", "S", "S", "S", "S", "U2", "U2", "U2", "U2", "U2"), Replicate = c("One", "Two", "Three", "Four", "Five", "One", "Two", "Three", "Four", "Five", "One", "Two", "Three", "Four", "Five", "One", "Two", "Three", "Four", "Five", "One", "Two", "Three", "Four", "Five", "One", "Two", "Three", "Four", "Five")), class = c("tbl_df", "tbl", "data.frame" ), row.names = c(NA, -30L))
请问造成两种工具的nMDS结果及应力值差异的原因是什么?
内容的提问来源于stack exchange,提问作者LauraEverdeen
相关产品推荐
相关产品推荐

