Manual de R (Estadística)/Missatges d'error

The condition has length > 1 and only the first element will be used modifica

Apareix, per exemple, si en una sentència if, en la condició (p. ex. if (X == 1)), un vector es compara amb un nombre. Exemple:


> DADES <- data.frame(SEXE=c("Dona", "Home", "Home", "Dona"), 
+                     EDAT=c(20,25,30,35))
> if(DADES$EDAT <= 25)
+   {
+     DADES$JOVE0N1S = 1
+   }
Warning message:
In if (DADES$EDAT <= 25) { :
  the condition has length > 1 and only the first element will be used

En l'exemple, DADES$EDAT te 4 elements (20,25,30,35). Caldria indicar-li quin dels quatre ha de ser menor de 25, p. ex., el primer (if(DADES$EDAT[1] <= 25)), malgrat que segurament no això el que es desitjava fer (crear una nova variable que tingui el valor "1" si la persona te 25 anys o menys anys).

Per crear una nova variable que tingui el valor "1" si la persona te 25 o menys anys) i "0" sinó, es pot utilitzar la funció ifelse:

> DADES$JOVE0N1S = ifelse(DADES$EDAT <= 25, 1, 0)
> DADES 
  SEXE EDAT JOVE0N1S
1 Dona   20        1
2 Home   25        1
3 Home   30        0
4 Dona   35        0