2012-04-17 90 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