[R] How do I sample "cases" within a matrix?
Silvia Lomascolo
slomascolo at gmail.com
Wed Apr 29 16:23:52 CEST 2009
Hi R community,
I am trying to obtain a sample from a matrix but sample(my.matrix) doesn't
do what I need. I have a matrix of 1287 interactions between the species in
columns and the species in rows and I want to obtain a smaller matrix with
say, 800 interactions, that may or may not have the same number of columns
and/or rows (i.e., some interactions may not be retrieved in a smaller
sample). For example, my original mock matrix M is
[,1] [,2] [,3] [,4] [,5]
[1,] 140 100 90 40 20
[2,] 126 90 81 36 18
[3,] 84 60 54 24 12
[4,] 70 50 45 20 10
[5,] 42 30 27 12 6
The command sample(my.matrix) samples whole cells from my matrix, such that
if the interaction between species 1 and 1 is included in the sample, they
always show 140 interactions. But what I want is to sample "cases" within
each cell. My sample matrix S could have =<140 interactions between species
1 and 1, =<100 between species 1 and 2, etc. Again, if some combination is
absent from the sample matrix, that's OK.
pla<- c(10, 9, 6, 5, 3) #abundance of pla species
pol<- c(14, 10, 9, 4, 2) #abundance of pol species
m<-pla%*%t(pol) #matrix of interactions according to pla and pol abundance
m
[,1] [,2] [,3] [,4] [,5]
[1,] 140 100 90 40 20
[2,] 126 90 81 36 18
[3,] 84 60 54 24 12
[4,] 70 50 45 20 10
[5,] 42 30 27 12 6
sample(m) #doesn't give me what I want...
I have searched this forum for an answer but all questions regarding
sampling from matrices refer to sampling whole rows or columns, not "cases"
within a matrix.
Thanks in advance for any help! Silvia.
--
View this message in context: http://www.nabble.com/How-do-I-sample-%22cases%22-within-a-matrix--tp23296005p23296005.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list