2016-07-06 7 views
-3

Ich erstelle eine kategorische Variable mit einigen Werten. Die if-Schleife läuft, aber es gibt mir keine Beobachtung mit "D", obwohl es existieren sollte. Weißt du was passiert?R respektiert nicht meine Bedingung if-Schleife

Vielen Dank im Voraus.

data$n_clasif<-"D" 
for (i in 1:n){ 
    if (data$forecast[i]>=10000){ 
     data$n_clasif[i]="A" 
    } else if (data$forecast[i]<10000 & data$forecast[i]>=2000){ 
     data$n_clasif[i]="B" 
    } else if (data$forecast[i]<2000 && data$CL_CLASIF_ROLLO[i]!="D"){ 
     data$n_clasif[i]="C" 
    } else { 
     data$n_clasif[i]="D" 
    } 
} 
+3

Willkommen bei StackOverflow. Sie sollten dies lesen und Ihre Frage bearbeiten. http://StackOverflow.com/Help/how-to-ask – Adam

+1

Lesen Sie über 'cut()'. – zx8754

Antwort

1
n <- 100 
data <- data.frame(forecast = runif(n, min =1, max = 20000), 
       n_clasif = NA, 
       CL_CLASIF_ROLLO = c('A','D')) 
for (i in 1:n){ 
    if(data$forecast[i]>=10000){ 
    data$n_clasif[i]<-"A" 
} else if(data$forecast[i]<10000 & data$forecast[i]>=2000){ 
    data$n_clasif[i]<-"B" 
} else if(data$forecast[i]<2000 & data$CL_CLASIF_ROLLO[i]!="D"){ 
    data$n_clasif[i]<-"C" 
} else { 
    data$n_clasif[i]<-"D" 
} 
} 

machte ich ein paar Annahmen, was wie Ihre Daten sieht.

+0

Danke Bret! Ihre Annahmen waren korrekt in Bezug auf die Datenstruktur, aber R sagt "Fehler in if (data $ prognose [i]> = 10000) { fehlende Werte wo TRUE/FALSE benötigt wird. Weißt du worum es geht? –

+0

Klingt wie dein Daten haben fehlende Werte Was möchten Sie in diesem Fall tun? – Gregor

+0

Auch 'ifselse()' wäre hier vorzuziehen, dh, Daten $ n_clasif <- ifelse (Daten $ Prognose> = 10000, "A", ifelse (... ' – Noah

Verwandte Themen