[R] rbinom for a matrix

Ben Bolker bolker at ufl.edu
Thu Jul 10 15:58:15 CEST 2008


ACroske <Audy3272 <at> yahoo.com> writes:

> 
> 
> Ben:
> Thanks for the reply. One further question, and this is where my novice
> status at R shows through. The code makes sense, but what would I put it for
> "m"? Is it the same number for all three (that was my first thought since it
> was the same placeholder for all three). Number of rows in the matrix is 56.
> There are 2576 total cells (observations). Each cell has its own
> probability.
> Thanks for your help!
> 
> > 
> > matrix(rbinom(length(m),prob=m,size=1),nrow=nrow(m))
> > 
> >   or (perhaps marginally more efficiently?)
> > 
> > y <- (runif(m)<m)
> > storage.mode(y) <- "double"
> > 

  m is your matrix of probabilities; for
example, you might do

 m = as.matrix(read.table("mystuff.txt"))

(or import it from ArcGIS, or whatever).

length(m) will be computed automatically (=2576),
as will nrow(m) (=56).

  Erik Iverson's solution should work too, but
I think mine will be much more efficient -- picking
a whole slug of random numbers at once is much
faster than looping and picking them one at a time.

  Ben Bolker



More information about the R-help mailing list