[R] Create a new variable and concatenation inside a "for" loop

Gordon, Fabiana fabiana.gordon at imperial.ac.uk
Wed Apr 27 16:25:14 CEST 2016


Hello,

Suppose the you need a loop to create a new variable , i.e., you are not reading data from outside the loop. This is a simple example in Matlab code,

for i=1:5
r1=randn
r2=randn
r=[r1 r2]
c(i,:)=r;   % creation of each row of c , % the ":" symbol indicates all columns. In R this would be [i,]
end

The output of interest is c which I'm creating inside the "for" loop -also the index used in the loop is used to create c. In R I had to create c as an  empty vector (numeric() ) outside the loop, otherwise I get an error message saying that c doesn't exit.

The other issue is the concatenation. In each iteration I'm creating the rows of c by placing the new row  (r) below the previous one so that c becomes a 5 x 2 matrix.
In R, it seems that I have no choice but use the function "rbind". I managed to write this code in R . However, I'm not sure that if instead of creating a new variable  using  the index in the "for" loop , I wanted to use the index to read data, e.g.  suppose I have a 2 X 10 matrix X and suppose I want to calculate the sin () for each 2 x 2 sub-matrix of and stored in a matrix A. Then the code would be something like this,

for i=1:5
A(:, 2*i-1:2*i)= sin(X(:, 2*i-1:2*i))   % the ":" symbol indicates all rows
end

Many Thanks,

Fabiana


Dr Fabiana Gordon

Senior Statistical Consultant
Statistical Advisory Service, School Of Public Health,
Imperial College London
1st Floor, Stadium House, 68 Wood Lane,
London W12 7RH.

Tel: 020 7594 1749
Email: fabiana.gordon at imperial.ac.uk<mailto:fabiana.gordon at imperial.ac.uk>
Web:  www.imperial.ac.uk/research-and-innovation/support-for-staff/stats-advice-service/<http://www.imperial.ac.uk/research-and-innovation/support-for-staff/stats-advice-service/>



	[[alternative HTML version deleted]]



More information about the R-help mailing list