0
人是不夠好,給我從我的第一個問題解決一個矩陣(使用功能上 成對「所有VS一切」矩陣集合的組合):創建從成對比較列表
library(vegan)
#by Akrun
A <- matrix(sample.int(100, size = 50*50, replace = TRUE), nrow = 50, ncol = 50)
B <- matrix(sample.int(100, size = 50*50, replace = TRUE), nrow = 50, ncol = 50)
C <- matrix(sample.int(100, size = 50*50, replace = TRUE), nrow = 50, ncol = 50)
Obj1 <- vegdist(decostand(A,"standardize",MARGIN=2), method="euclidean")
Obj2 <- vegdist(decostand(B,"standardize",MARGIN=2), method="euclidean")
Obj3 <- vegdist(decostand(C,"standardize",MARGIN=2), method="euclidean")
names1 <- ls(pattern="Obj")
Cmb1 <- combn(names1, 2)
lapply(split(Cmb1, col(Cmb1)), function(x) unlist(mantel(get(x[1]), get(x[2]))[3:4]))
這導致的結果列表,例如:
$`1`
statistic signif
0.03006202 0.4070000
有兩個問題:
我可以將比較對象的兩個名稱寫入「$」行嗎?與
名稱可以得到
分裂(Cmb1,餵食col(Cmb1)。
- 更好的是,是有可能以某種創建矩陣具有n行和列的n個對象並填寫統計值?
感謝您抽出寶貴的時間。
你試過'sapply'在'lapply'的地方?我們不能重現這一點。你可以做一個最小可重現的例子嗎? – 2014-09-22 15:47:26
我調整了代碼。它只是通過壁爐架統計數據來比較彼此之間的矩陣。 – nouse 2014-09-22 16:02:37
關於你的第一個問題,如果你把這三個對象放到一個列表中,那麼你可以用'$'操作符引用它們。 – 2014-09-22 17:07:09