如何使用R和就绪fst进行距离矩阵曼特尔测试?

如何使用R和就绪fst进行距离矩阵曼特尔测试?,r,matrix,R,Matrix,我有一个群体之间的fst值(分子距离指数)(这不是根据分子数据计算的,原始数据是错误的) 但我有环境数据和位置(包括lon和lat) 我想使用Mantel检验(r更好)对这些距离矩阵进行关联。 然而,我无法让包裹通过,似乎问题在fst表上 我制作了一个csv表格,如下所示 123456 0.0282 0.0266 0.5122 0.4784 0.5553 0.057 0.0266 0 0.4426 0.4042 0.5448 0.318 0.5122 0.4426 0.4527 0.6017 0

我有一个群体之间的fst值(分子距离指数)(这不是根据分子数据计算的,原始数据是错误的) 但我有环境数据和位置(包括lon和lat) 我想使用Mantel检验(r更好)对这些距离矩阵进行关联。 然而,我无法让包裹通过,似乎问题在fst表上 我制作了一个csv表格,如下所示

123456

0.0282 0.0266 0.5122 0.4784 0.5553

0.057 0.0266 0 0.4426 0.4042 0.5448

0.318 0.5122 0.4426 0.4527 0.6017

0.34120.4784 0.4042 0.4527 0.4171

0.4462 0.5553 0.5448 0.6017 0.4171 0

我用代码导入或计算距离矩阵

library(ade4)
setwd(choose.dir())
df = read.table("hynobins_climate.csv", header= T,sep=",")
station.dists <- dist(cbind(df$lon, df$lat))
#This works fine for calculation of geo distance

fst=read.table("mtFst.csv",header=T)
mantel.rtest(station.dists, fst, nrepet = 9999)
库(ade4)
setwd(选择.dir())
df=read.table(“hynobins_climate.csv”,header=T,sep=“,”)
station.dists我的最终解决方案是“自己创建矩阵”

cbind(c(0,0.024,0.0414,0.9565,0.9802,1),c(0.024,0,0.0403,0.9515,0.9766,0.9979),c(0.414,0.403,0,0.9396,0.9643,0.9928)。。。。。。。。
fst[upper.tri(fst,diag=TRUE)]
cbind(c(0,0.024,    0.0414, 0.9565, 0.9802, 1),c(0.024,0,0.0403,0.9515,0.9766,0.9979),c(0.414,0.403,0,0.9396,0.9643,0.9928)........
fst[upper.tri(fst,diag=TRUE)] <- NA
fst<-as.dist(fst)