Hola, Juan:

Eso sólo es posible si exactamente para uno de los valores de i no se cumple ninguna de las condiciones, con lo cual no llegas a incorporar valor en cinr.

Puedes utilizar if else de modo que te emita un mensaje informando del "i" que no supera ninguno de los if.

Un saludo.
Eva


El Jueves 10 de julio de 2014 8:58, juan(uned) <jgil@edu.uned.es> escribió:
 


Estimados compañeros, hoy me ha surgido una duda, quizás trivial, pero 
que no encuentro sentido. Tengo un bucle con el siguiente código:

for (i in 1:n)
{
if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3)) cinr[i]<-1
if (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5)) cinr[i]<-2
if (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9)) cinr[i]<-3
if (rango_inr1[i]==4 & (inr[i]>= 2.25 & inr[i]<= 3.5)) cinr[i]<-4
if (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25)) cinr[i]<-5
if (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5)) cinr[i]<-6
if (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4)) cinr[i]<-7
if (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6)) cinr[i]<-8
if (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5)) cinr[i]<-9
if (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8)) cinr[i]<-10
if (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4)) cinr[i]<-11
}

donde n vale 3738 e i naturalmente 3738. Pues bien, resulta que la 
variable creada cinr tiene 3737 casos. ¿Qué puede estar ocurriendo?. He 
comprobado los casos de rango_inr1 y de inr y son 3738.
¿Qué estoy haciendo mal?.

Un cordial saludo,

Juan

-- 
Juan Antonio Gil Pascual
Profesor de Metodología de la Investigación Cuantitativa
correo: jgil@edu.uned.es
web: www.uned.es/personal/jgil

Dpto. MIDE
Facultad de Educación
c/Juan del Rosal, 14 desp. 2.72
28040 Madrid
Tel‚f. 91 3987279
Fax. 91 3987288

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
	[[alternative HTML version deleted]]

