[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