2016-07-07 11 views
0

I-Daten ähnlich wie diese haben:IfElse Aussage mit Faktoren in R

X    Y 
45   45 
56   34 
Unspecified Unspecified 
Unspecified 23 

ich eine ifelse Anweisung verwenden wollte diese vergleichen - eine 1, wenn Spalte X geben Spalt Y nicht gleich ist, und ein 0 Andernfalls. Ich habe versucht, etwas wie folgt:

ifelse(data$X == data$Y, 0, 1) 

Aber nirgendwohin. Was kann ich tun? Wie immer wird jede Hilfe geschätzt.

+3

Was meinst du mit "ohne Erfolg"? – Psidom

+4

Konvertieren Sie Ihre Spalten in Zeichen, bevor Sie den Vergleich durchführen. – Psidom

+1

Beachten Sie auch, dass Spaltennamen in "Daten" in Großbuchstaben (X, Y) stehen, während innerhalb Ihres "Ifelse" -Aufrufs Kleinbuchstaben (x, y) sind. –

Antwort

1

es heraus dank einem Kommentar, der irgendwie gelöscht wurde:

ifelse(as.character(data$X) == as.character(data$Y), 0, 1) 
2

Keine Notwendigkeit, ifelse zu verwenden, nur den logischen Operator != verwenden. Stellen Sie sich vor, Ihr Datenrahmen ist df:

> with(df, as.character(X)!=as.character(Y))*1 
[1] 0 1 0 1 
+0

Ich bevorzuge explizite Konvertierung, anstatt '* 1'. – zx8754

Verwandte Themen