有一个0 1矩阵 类似
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 1 1 1
[2,] 1 0 0 1 0
[3,] 0 0 0 1 1
[4,] 0 1 0 0 1
想要随机后 每行及每列的加和不变。用了vegan包中的permatswap函数
> mat
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 1 1 1
[2,] 1 0 0 1 0
[3,] 0 0 0 1 1
[4,] 0 1 0 0 1
> out <- permatswap(mat, times = 9, burnin = 20000, thin = 500, mtype = "prab")
> out$perm[[1]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 1 1 1
[2,] 1 0 0 1 0
[3,] 0 1 0 0 1
[4,] 0 0 0 1 1
确实能达到我想要的效果,但是我的矩阵有14000x9000这么大,随机起来很慢。
请问大家有没有更高效的办法,拜托了!