[R] Compressing code help in a loop
Francesca
francesca.pancotto at gmail.com
Mon Nov 10 13:14:28 CET 2014
Dear Contributors
I have a problem with a loop.
I needed to create a variable that takes values 1,2.. to 19 corresponding
to the value of a variable in a data.frame whose name is p_int$p_made and
which takes values from 406 to 211.
The problem is that this values come ordered in the wrong way when I try to
compress the loop as the system reads
107,111,207,211,311,406,407,408,409,410,411,
while they correspond to quarters-years so they should be ordered as
406-107-207-307-407…
the only solution I found was really silly. It is the following.
p_m<-matrix(0,dim(p_int)[1],1)
for (i in 1:length(p_int$p_made)){
if (p_int$p_made[i]==406) p_m[i]<-1 else
if (p_int$p_made[i]==107) p_m[i]<-2 else
if (p_int$p_made[i]==207) p_m[i]<-3 else
if (p_int$p_made[i]==307) p_m[i]<-4 else
if (p_int$p_made[i]==407) p_m[i]<-5 else
if (p_int$p_made[i]==108) p_m[i]<-6 else
if (p_int$p_made[i]==208) p_m[i]<-7 else
if (p_int$p_made[i]==308) p_m[i]<-8 else
if (p_int$p_made[i]==408) p_m[i]<-9 else
if (p_int$p_made[i]==109) p_m[i]<-10 else
if (p_int$p_made[i]==209) p_m[i]<-11 else
if (p_int$p_made[i]==309) p_m[i]<-12 else
if (p_int$p_made[i]==409) p_m[i]<-13 else
if (p_int$p_made[i]==110) p_m[i]<-14 else
if (p_int$p_made[i]==210) p_m[i]<-15 else
if (p_int$p_made[i]==310) p_m[i]<-16 else
if (p_int$p_made[i]==410) p_m[i]<-17 else
if (p_int$p_made[i]==111) p_m[i]<-18
else
if (p_int$p_made[i]==211) p_m[i]<-19
}
Can anyone help to find something more efficient?
Thanks in advance.
Francesca
--
Francesca
----------------------------------
Francesca Pancotto
Associate Professor
University of Modena and Reggio Emilia
Viale A. Allegri, 9
40121 Reggio Emilia
Office: +39 0522 523264
Web: https://sites.google.com/site/francescapancotto/
----------------------------------
[[alternative HTML version deleted]]
More information about the R-help
mailing list