【发布时间】:2019-08-12 14:13:22
【问题描述】:
有两个列表,包括许多矩阵:
df <- data.frame(replicate(100,sample(0:100,100,rep=TRUE)))
l.i <- vector("list")
l.j <- vector("list")
for (var in names(df[1:50])) {
l.i[[var]] <- as.matrix(dist(df[var], "euclidean"))
}
for (var in names(df[51:100])) {
l.j[[var]] <- as.matrix(dist(df[var], "euclidean"))
}
我想计算 l.i 和 l.j 中所有成对元素之间的 Mantel 测试(但不在其中)。我可以做例如:
library(vegan)
all.i.vs.j1 <- lapply(l.i, function(x) mantel(x, l.j$X51))
all.i.vs.j2 <- lapply(l.i, function(x) mantel(x, l.j$X52))
这确实是我想要的输出环境,但我想将其包装到 for 循环或 lapply 中。
谢谢!
【问题讨论】: