[R] storing output of a loop in a matrix

Petr PIKAL petr.pikal at precheza.cz
Wed May 23 10:46:45 CEST 2012


Hi

What is your intention?

basically one output column can be made by

cumsum(bd)

Then you can shuffle bd by let say

bd <- sample(bd, 64)

and repeat cumsum for new bd.

bd<-scan("blap.txt")
output<-matrix(0,64,10)

for (i in 1:10) {
bd<-sample(bd, 64)
cs<-cumsum(bd)
output[,i]<-cs
}

If you insist you can reorder resulting output.

Regards
Petr

> 
> "blap.txt" is a numeric vector of length 64.
> 
> I am using the following code:
> 
> 
> bd<-scan("blap.txt")
> output<-matrix(0,64,10)
> s<-sum(bd)
> for (i in 10){
> 
> while (s>0)
> {x1<-sample(bd,(length(bd)-1), replace=F)
> s<-sum(x1)
> bd<-x1
> output[i]<-s
> 
> }
> 
> 
> }
> write.table(output, file="res.txt")
> 
> This code is not doing what I'd like it to do:
> 
> 1. It is not running through the while loop 10 times, just once.
> 2. I can't work out how to get the results into the output matrix. The
> matrix should be 10 columns with the decreasing s values for each of the
> 10 runs through the for loop.
> 
> Sorry for any obvious mistakes. I'm very new to R and teaching myself.
> Where am I going wrong here, please?
> 
> Thank you.
> 
> 
> --
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list