【发布时间】:2018-07-25 20:15:17
【问题描述】:
我使用Vectorize 函数为 50x50 数据集的 Kolmogorov Smirnov 测试创建了一个循环,并使其输出 50x50 矩阵中的 p 值。然后将这些 p 值存储为距离对象。应用层次聚类并将其存储为树状图对象。我再次重复这一点,然后找到它们之间的共同相关性。下面的代码输出一个 2x2 矩阵。
mat1 <- outer(1:50, 1:50, Vectorize(function(i,j)
{ks.boot(as.numeric(rep(seq(0,14,1),as.vector(data[i,]))),
as.numeric(rep(seq(0,14,1),as.vector(data[j,]))),nboots=100)
$ks.boot.pvalue}))
rownames(mat) <- data2[, 1]
d1=as.dist(as.matrix(1-mat))
hcr1 <- hclust(d,method = "complete")
dend1 <- as.dendrogram(hcr)
mat2 <- outer(1:50, 1:50, Vectorize(function(i,j)
{ks.boot(as.numeric(rep(seq(0,14,1),as.vector(data[i,]))),
as.numeric(rep(seq(0,14,1),as.vector(data[j,]))),nboots=100)
$ks.boot.pvalue}))
rownames(mat) <- data2[, 1]
d2=as.dist(as.matrix(1-mat))
hcr2 <- hclust(d,method = "complete")
dend2 <- as.dendrogram(hcr)
dendy <- dendlist(dend1,dend2)
cor <- cor.dendlist(dendy1)
cor1
所以我所追求的是一个for循环来模拟以获得dend1,dend2,....,dend100。将其存储到
dendy <- dendlist(dend1,dend2,...,dend100)
【问题讨论】:
-
您能具体说明您的问题吗?
-
我通过复制和粘贴相同的代码但更改了变量名称重复了该过程一次。即 mat1 & mat2, d1 & d2。而不是复制这 100 次 mat1,mat2,.....,mat100 我想把它放到一个循环中,计算 p 值 100 次,然后使用我所说的过程,最后输出一个 100x100 的 cophenetic 矩阵每个模拟之间的相关性
-
你只是想重复这个过程一百次,不改变代码中的任何内容?
-
是的,我对 R 中的循环还很陌生
标签: r loops hierarchical-clustering