On 07-06-2013, at 11:57, Laz <lmra...@ufl.edu> wrote: > Dear Berend, > > I have made some changes but I still get errors: > > For reproducibility, > Rspatswap() is a function which originally returns a single value. For > example Rspatswap(...) and you get 0.8 > > So, run Rspatswap() 20 times and store all the values. > Then from these 20 values, calculate the calculate average, sd,se,min,max to > get something similar to: > > average sd se min max > trace 0.8880286 0.0009178193 0.0004589096 0.8870152 0.889241 > > If we repeat the function 10 times, then I expect 10 rows with 5 columns but > it does not work ? >
Replacing Rspatswap(…)[1] with runif(1) (you could/should have done that to provide reproducible code) and the modifications I suggested you make in your function itn() like this itn<-function(it){ siml<-matrix(NA,ncol=5,nrow=it) for(g in 1:it){ siml[g,]<-optm(perm=20) } siml } running itn(10) I get a matrix with 10 rows and 5 columns. So what do you mean by "it does not work"? You sometimes get an error message from apply due to a bad dim() like this Error in apply(mat, 2, mean) : dim(X) must have a positive length When the result of mat[-delete,] is a matrix with a single row the result is simplified to a vector. See ?"[" in particular the drop argument. So this should work in function optm() mat <- mat[-delete,, drop=FALSE] Berend ______________________________________________ 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.