alaios wrote: > > I am trying to learn lapply. > I would like, as a test case, to try the lapply alternative for the > Shadowlist<-array(data=NA,dim=c(dimx,dimy,dimmaps)) > for (i in c(1:dimx)){ > Shadowlist[,,i]<-i > } > ---so I wrote the following--- > returni <-function(i,ShadowMatrix) {ShadowMatrix<-i} > lapply(seq(1:dimx),Shadowlist[,,seq(1:dimx)],returni) > > The basic problem is that you have an array, but you name it "list". This is valid code, but by calling it so you shot a list-bullet into your vector-foot. An array should be treated like an array, and the best way to fill it uses simple vectoring. No loop, no xapply needed.
Use lapply if you have a data.frame or (more generic) a real list, which can contain rather heterogeneous components. And try to forget what you learned in your c++ course: Seeing lapply(,Shadowlist[,,seq(1:dimx)],) to fill Shadowlist tell me that it must be wrong, because R (in all recommended cases) never "fills" a parameter passed to it like c(++) can do. You should always have something like: Shadowlist <- lapply(....) Dieter #------ dimx=2 # don't forget to make the example self-contained dimy=3 dimmaps=3 ShadowArray<-array(data=NA,dim=c(dimx,dimy,dimmaps)) # Are you shure you mean "dimx" ? But let's assume it is correct for (i in c(1:dimx)){ ShadowArray[,,i]<-i } ShadowArray ShadowArray<-array(data=NA,dim=c(dimx,dimy,dimmaps)) ShadowArray[,,1:dimx]<-1:dimx ShadowArray -- View this message in context: http://r.789695.n4.nabble.com/a-for-loop-to-lapply-tp3417169p3417377.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.