0

在完成对数据集的 pcnm 分析后,我可以调用所有轴并从分析中剔除新创建的标准化值。但是,在我将这些值放入多元回归或其他分析之前,我想知道每个轴中有多少变化。我试过告诉 r 踢出一个 screeplot,这就足够了,但没有运气。在进行此分析之前,我主要在 SAS 工作,因此我并不精通 R 语言。下面的代码运行良好,可以完成我需要做的所有事情,但它并没有提供关于分析如何执行或分析结果如何的大量信息。所以这里的底线是我想对每个组件所占的变化比例进行一些说明。谢谢大家的帮助。

根据 vegan package manual,我尝试使用用于 R 中其他排序分析的 screeplot 代码,但它从未指定它可用于 pcnm。

#set working directory
setwd("G:/Cyprinodon_elegans")
#read in the data
loc<-read.csv("hydrologic_distances.csv",header=T)
attributes<-read.csv("balmorhea_locations.csv",header=T)
#have a look at the data
names(loc)
#pull only the values for origin, distination, and length
loc.go<-loc[,c(5,6,10)]
names(loc.go)
#create a matrix
loc.mat<-matrix(0,ncol=40,nrow=40)
loc.mat[cbind(loc.go$Origin,loc.go$Destination)]<-loc.go$Total_Length
#grab the row and column IDs
labels<-as.character(sort(unique(loc.go$Origin)))
rownames(loc.mat)<-labels
colnames(loc.mat)<-labels
#pull only the the lower right and make it a distance matrix
matrix2<-as.dist(loc.mat)
#load vegan library to run pcnm analysis
library(vegan)
#run pcnm
pcnm1<-pcnm(matrix2)
output<-as.data.frame(pcnm1$vectors)
output$UniqueID<-as.factor(as.character(row.names(output)))
output
#combine with other attributes
all.data<-cbind(attributes,output)
#plot the output
plot(all.data$Long,all.data$Lat)
ordisurf(all.data[,c(3:2)], scores(pcnm1, choi=1), bubble = 4, main = "PCNM 1")
ordisurf(all.data[,c(3,2)], scores(pcnm1, choi=2), bubble = 4, main = "PCNM 2")
ordisurf(all.data[,c(3,2)], scores(pcnm1, choi=3), bubble = 4, main = "PCNM 3")
ordisurf(all.data[,c(3,2)], scores(pcnm1, choi=4), bubble = 4, main = "PCNM 4")
ordisurf(all.data[,c(3,2)], scores(pcnm1, choi=5), bubble = 4, main = "PCNM 5")
#write the output
write.table(all.data,"PCNM.output.csv")
4

0 回答 0