-----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