1
如何使用R替换置换矩阵的列?我发现了一个名为rmperm {sna}的函数,但它可以对列和行进行置换,而我只是想对列进行置换。使用替换和聚类来置换矩阵的列
编辑: 我必须排列矩阵1000次,然后做层次聚类,所以我有1000个随机化后的最终树。
非常感谢。
如何使用R替换置换矩阵的列?我发现了一个名为rmperm {sna}的函数,但它可以对列和行进行置换,而我只是想对列进行置换。使用替换和聚类来置换矩阵的列
编辑: 我必须排列矩阵1000次,然后做层次聚类,所以我有1000个随机化后的最终树。
非常感谢。
尝试sample()
函数。
> m <- matrix(as.integer(runif(9,0,9)),ncol=3)
> m
[,1] [,2] [,3]
[1,] 5 0 5
[2,] 6 0 0
[3,] 2 1 3
> permuted <- m[,sample(ncol(m), 10, replace=TRUE)]
> permuted
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 5 0 5 5 5 5 0 5 5 5
[2,] 0 0 0 0 6 0 0 0 6 0
[3,] 3 1 3 3 2 3 1 3 2 3
的第一个参数sample()
指定样品(1:x
)的范围内,所述第二参数指定的项数来选择(size
),并且replace
参数指定我们是否要使用替换(如果size> x,则需要)。
谢谢你的回答。我必须对矩阵进行1000次置换,然后进行层次聚类,以便在1000次随机化之后得到最终的树。这很好地排列了我的矩阵,但是如果我放置一个循环并在其中进行排列,然后在循环内进行排序。我应该在循环外面绘制聚类结果吗?谢谢! – DianaHelen 2012-04-16 15:32:54
当然。您可能希望在循环之前定义一些变量,在该循环中存储结果,然后在循环完成后合并/绘制它们。 – 2012-04-16 17:53:44
这是我迷路的地方。 (我在1:1000中) 排列< - test2_matrix [,sample(ncol(test2_matrix),12,replace = TRUE)] d = dist(置换,method =“euclidean”,diag = FALSE,upper = FALSE,p = 2) } png(filename =“cluster_dendrogram_bootstrap.png”,width = 1024,height = 1024,pointsize = 10) plot(clust)' – DianaHelen 2012-04-16 18:00:35