From: Dimitris Rizopoulos <dimitris.rizopoulos_at_med.kuleuven.be>

Date: Wed 05 Oct 2005 - 19:57:26 EST

Dimitris Rizopoulos

Ph.D. Student

Biostatistical Centre

School of Public Health

Catholic University of Leuven

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Oct 05 20:07:29 2005

Date: Wed 05 Oct 2005 - 19:57:26 EST

try it this way:

a <- array(NA, c(3, 5))

for(i in 1:nrow(a))

a[i, ] <- c(runif(3), i, i * 10)

a

I hope it helps.

Best,

Dimitris

Dimitris Rizopoulos

Ph.D. Student

Biostatistical Centre

School of Public Health

Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium

Tel: +32/(0)16/336899 Fax: +32/(0)16/337015 Web: http://www.med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm

- Original Message ----- From: "Jonathan Williams" <jonathan.williams@pharmacology.oxford.ac.uk> To: "Ethz. Ch" <r-help@stat.math.ethz.ch> Sent: Wednesday, October 05, 2005 11:46 AM Subject: [R] problem accumulating array within a function over loops

> Dear R helpers,

*>
**> I am having trouble with an array inside a loop.
**>
**> I wish to accumulate the results of a function in an array within
**> the function, over several loops of a program outside the function.
**>
**> The problem is that the array seems to re-set at every entry to the
**> function. Here is an example, so you can see what I mean.
**>
**> ########################################################################
**> #First, I declare the array and loop control variables
**> maxrun=3; a=array(NA, c(3,5)); run=0
**>
**> # Then I define the function "testf"
**> testf=function(x,y){
**> print(paste('Run:',run)) #check that the function knows about "run"
**> a[run,1:3]=runif(3); a[run,4]=x; a[run,5]=y #collect numbers into
**> array "a"
**> print(paste("Row", run, "of a:")); print(a[run,]) #check what row
**> 'run' of
**> "a" contains
**> print("Whole of a:"); print(a) # check what all of "a" contains
**> }
**>
**> #Finally, I loop through "testf" maxrun occasions
**> for (run in 1:maxrun) testf(run,run*10)
**> #########################################################################
**>
**> Here is the output:-
**>
**> [1] "Run: 1"
**> [1] "Row 1 of a:"
**> [1] 0.4637560 0.8872455 0.6421500 1.0000000 10.0000000
**> [1] "Whole of a:"
**> [,1] [,2] [,3] [,4] [,5]
**> [1,] 0.4637560 0.8872455 0.64215 1 10
**> [2,] NA NA NA NA NA
**> [3,] NA NA NA NA NA
**> [1] "Run: 2"
**> [1] "Row 2 of a:"
**> [1] 0.4841261 0.8835118 0.9862266 2.0000000 20.0000000
**> [1] "Whole of a:"
**> [,1] [,2] [,3] [,4] [,5]
**> [1,] NA NA NA NA NA
**> [2,] 0.4841261 0.8835118 0.9862266 2 20
**> [3,] NA NA NA NA NA
**> [1] "Run: 3"
**> [1] "Row 3 of a:"
**> [1] 0.7638856 0.6667588 0.6102928 3.0000000 30.0000000
**> [1] "Whole of a:"
**> [,1] [,2] [,3] [,4] [,5]
**> [1,] NA NA NA NA NA
**> [2,] NA NA NA NA NA
**> [3,] 0.7638856 0.6667588 0.6102928 3 30
**>
**> You can see that array a correctly collects the numbers at each
**> loop.
**> But, each successive loop loses the contents of previous loops. I am
**> hoping to keep the results of each successive loop in "a", so that
**> after maxrun runs, "a" looks like:-
**>
**> [,1] [,2] [,3] [,4] [,5]
**> [1,] 0.4637560 0.8872455 0.64215 1 10
**> [2,] 0.4841261 0.8835118 0.9862266 2 20
**> [3,] 0.7638856 0.6667588 0.6102928 3 30
**>
**> (I have made this by cutting and pasting from the above output, to
**> show
**> what I hoped testf would produce).
**>
**> I am sure I must be making a simple but fundamental error. Would
**> someone be so kind as to show me what this is and how to correct it?
**> I have struggled with it for over an hour, without success!!!!!
**> I am running R 2.1.1 on a Windows 2000 machine.
**>
**> Thanks, in advance, for your help,
**>
**> Jonathan Williams
**>
**> ______________________________________________
**> R-help@stat.math.ethz.ch mailing list
**> https://stat.ethz.ch/mailman/listinfo/r-help
**> PLEASE do read the posting guide!
**> http://www.R-project.org/posting-guide.html
**>
*

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Oct 05 20:07:29 2005

*
This archive was generated by hypermail 2.1.8
: Sun 23 Oct 2005 - 18:19:57 EST
*