I must be missing something. What's wrong with
t(apply(mat, 1, sample))
?
Peter Ehlers
On 2011-11-16 12:12, Gavin Simpson wrote:
On Wed, 2011-11-16 at 14:29 -0500, R. Michael Weylandt wrote:
Suppose your matrix is called X.
? sample
X[sample(nrow(X)),]
That will shuffle the rows at random, not permute within the rows.
Here is an alternative, first using one of my packages (permute -
shameful promotion ;-) !:
mat<- matrix(sample(0:1, 100, replace = TRUE), ncol = 10)
require(permute)
perms<- shuffleSet(10, nset = 10)
## permute mat
t(sapply(seq_len(nrow(perms)),
function(i, perms, mat) mat[i, perms[i,]],
mat = mat, perms = perms))
If you don't want to use permute, then you can do this via standard R
functions
perms<- t(replicate(nrow(mat), sample(ncol(mat))))
## permute mat
t(sapply(seq_len(nrow(perms)),
function(i, perms, mat) mat[i, perms[i,]],
mat = mat, perms = perms))
HTH
G
Michael
On Wed, Nov 16, 2011 at 11:45 AM, Juan Antonio Balbuena<balbu...@uv.es> wrote:
Hello
This is probably a basic question but I am quite new to R.
I need to permute elements within rows of a binary matrix, such as
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0 0 0 0 1 0 0 0 0 0
[2,] 0 0 1 1 0 0 0 1 1 0
[3,] 0 1 0 0 0 0 1 0 0 0
[4,] 0 0 0 0 0 0 1 1 0 0
[5,] 0 0 0 1 0 0 0 0 1 0
[6,] 0 0 1 1 0 0 0 0 0 1
[7,] 0 0 0 0 0 0 0 0 0 0
[8,] 1 1 0 1 0 0 0 1 0 1
[9,] 1 0 0 1 0 1 0 1 0 0
[10,] 0 0 0 0 0 0 0 1 0 1
That is, elements within each row are permuted freely and independently from
the other rows.
I see that is is workable by creating a array for each row, performing
sample and binding the arrays again, but I wonder whether there is a more
efficient way of doing the trick.
Any help will be much appreciated.
--
View this message in context:
http://r.789695.n4.nabble.com/permutation-within-rows-of-a-matrix-tp4076989p4076989.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.