2012-04-17 78 views
1

我试图对数据矩阵进行1000次排列,然后在“R”中进行层次聚类,因此1000次随机化后我的数据上有最终的树。 这是我迷路的地方。我有这样的循环随机化和分层树

for(i in 1:1000) 
    { 
    permuted <- test2_matrix[,sample(ncol(test2_matrix), 12, replace=TRUE)]; (this permutes my columns) 
    d = dist(permuted, method = "euclidean", diag = FALSE, upper = FALSE, p = 2); 
    clust = hclust(d, method = "complete", members=NULL); 
    } 
    png (filename="cluster_dendrogram_bootstrap.png", width=1024, height=1024, pointsize=10) 
    plot(clust) 

我不知道,如果最终的树是1000个随机化或刚刚过去的树,它在回路计算后的产物。另外如果我想在树上显示引导值,我该如何去解决它?

非常感谢!

回答

1

您示例中的clust的值确实是循环中计算的最终树。下面是制作和保存1000个排列你的矩阵

make.permuted.clust <- function(i){ # this argument is not used 
    permuted <- data.matrix[,sample(ncol(data.matrix), 12, replace=TRUE)] 
    d <- dist(permuted, method = "euclidean", diag = FALSE, upper = FALSE, p = 2) 
    clust <- hclust(d, method = "complete", members=NULL) 
    clust # return value 
} 

all.clust <- lapply(1:1000, make.permuted.clust) # 1000 hclust trees 

你问题的第二部分应回答here的一种方式。

+0

它给我这个错误:错误match.fun(FUN): 'make.permuted.clust(test2_matrix)' 不是一个函数,字符或符号 – DianaHelen 2012-04-17 11:50:14

+0

对不起,lapply中的函数不应该有参数。现在已经修复了。 – 2012-04-17 11:54:47

+0

非常感谢您的帮助! – DianaHelen 2012-04-17 12:06:08