Hi all, I have a problem with getting my code to do what I want!
This is the code I have: create.means.one.size<-function(nsample,var,nboot){ mat.x<-matrix(0,nrow=nboot,ncol=nsample) for(i in 1:nboot){ mat.x[i,]<-sample(var,nsample,replace=T) } mean.mat<-rep(0,nboot) for(i in 1:nboot){ mean.mat[i]<-mean(mat.x[i,]) } sd.mean<-sd(mean.mat) return(mean.mat) } where nsample here is a scalar. Then this is where I have the problem create.all.means<-function(nsample,var,nboot){ MEANS<-matrix(0,nrow=nboot,ncol=length(nsample)) for(j in nsample){ MEANS[,]<-create.means.one.size(j,var,nboot) } return(A=list("MEANS"=MEANS,"nsample"=nsample,"std.dev"=sd(MEANS))) } here nsample is a vector of the different sample sizes I want. This function should first create an empty matrix MEANS then it loops through the possible values of nsample each time it calls create means.one.size() and puts the output into the appropriate column of means. this function outputs the matrix MEANS and the vector nsample - both as part of a list However, the vector nsample could be c(1,3,5) but I want the outputs to go into columns 1, 2 and 3 rather than 1,3,5 (which I'm not even sure would work anyway!) Any help would be great! If I leave the code as it is and use the vector data<-c(1,2,3) Then create.all.means(c(1,2),data,5) gives $MEANS [,1] [,2] [1,] 2.5 2.5 [2,] 1.0 1.0 [3,] 2.0 2.0 [4,] 2.0 2.0 [5,] 2.0 2.0 $nsample [1] 1 2 $std.dev1] 0.5477226 0.5477226[ which obviously isn't correct :( -- View this message in context: http://r.789695.n4.nabble.com/Matrix-manipulation-in-for-loop-tp3525849p3525849.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.