如何用R中的替换来置换矩阵的列?我发现了一个名为rmperm {sna}的函数,但它会置换列和行,而我只想置换列。
编辑: 我必须对矩阵进行1000次置换,然后进行层次聚类,以便在1000次随机化后得到最终的树。
非常感谢。
答案 0 :(得分:1)
尝试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
}参数指定我们是否要使用替换(如果大小&gt; x则需要)。