-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

  Works for me?

occ  <- c(2,5,3)
n1 <- nullModel.spsite(occ, iter=5, plots=10)
n2 <- nullModel.spsite(occ, iter=5, plots=10)

n1[,,1]
n2[,,1]

all(n1[,,1]==n2[,,1]) ## FALSE

  Can you show an example that doesn't work?
 (This is with R 2.12.1, but you're using pretty basic/fundamental
components: I'd be surprised if R had changed in such a way as to change
the function of this code in the meantime.)

  You can use the time as the seed for random number generation as follows:

set.seed(as.integer(Sys.time()))

  ... but it's probably a much better idea to set a particular (known)
random number seed at the beginning of each run, so that the runs are
reproducible.  If you really want to do this I would recommend something
like

 cat(st <- as.integer(Sys.time()),"\n")
set.seed(st)

so that you can reproduce results if necessary.




On 10-12-24 06:29 PM, Jane Shevtsov wrote:
> I'm using R 2.10.1 (running on Ubuntu) to implement a simple null
> model. The model (code below) assigns species to plots by shuffling
> the numbers 1-# of plots and assigning the species to the first N
> plots in the resulting vector, where N is the number of plots at which
> the species was found in real life. The code works fine, except for
> one problem -- different runs give exactly the same results! (Each
> matrix is different, but matrix 1 of run 1 is identical to matrix 1 of
> run 2.) How do I fix this? Is it possible to get R to use the time as
> the seed for random number generation?
> 
> Thanks,
> Jane Shevtsov
> 
> #input: vector of species occurences, # of iterations, #plots at site
> 
> nullModel.spsite <- function(occ, iter, plots) {
>       spp <- length(occ)
>       #Allocate array for co-occurrence frequencies of each species pair.
>       sitespArr <- array(0, c(spp, plots, iter))
>       #Pre-allocate other stuff
>       sitesp <- array(0, c(plots, spp)) #Preserve matrix orientation to
> minimize recoding; transpose later
>       order <- array(0, plots)
> 
>       for (i in 1:iter) {
>               #Zero out site-sp matrix
>               sitesp <- array(0, c(plots, spp))
>               for (j in 1:spp) {
>                       #Randomly shuffle plots
>                       order <- sample(1:plots, plots, replace=FALSE)
>                       #Put sp i in first k (# plots where species i occurs) 
> plots
> according to order vector
>                       sitesp[order[1:occ[j]], j] = 1
>               }
>               sitespArr[,,i] = t(sitesp)
>       }
>       return(sitespArr)       
> }
> 


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk0X/uQACgkQc5UpGjwzenNDBACbB9uXtM4voD6jNef+6PF7Y+En
V8gAnRHQvMUhfShYkvf806wnwMCKVuMQ
=ANB2
-----END PGP SIGNATURE-----

_______________________________________________
R-sig-ecology mailing list
R-sig-ecology@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-ecology

Reply via email to