Wie man NA in der ifelse-Anweisung ignoriert

8

Ich kam zu R von SAS, wo numeric missing auf unendlich gesetzt ist. Also können wir einfach sagen:

%Vor%

In R muss ich ausführlich sein wie:

%Vor%

Ich finde diese Syntax ist schwer zu lesen. Kann ich die ifelse-Funktion irgendwie ändern, um NA als einen speziellen Wert zu betrachten, der für alle Vergleichsbedingungen immer falsch ist? Wenn nicht, wird auch NA als "Inf" funktionieren.

In ähnlicher Weise wird NA auf '' (leer) in der ifselse-Anweisung für Zeichenvariablen gesetzt.

Danke.

    
AdamNYC 28.11.2012, 05:36
quelle

4 Antworten

13

Diese Syntax ist einfacher zu lesen:

%Vor%

(Die äußeren Klammern sind nicht notwendig, aber machen die Anweisung für fast alle anderen als die Maschine lesbarer.)

Bearbeiten :

%Vor%

Schließlich können Sie das Ganze zu einer Funktion machen:

%Vor%     
Josh O'Brien 28.11.2012, 05:50
quelle
7

Das Ersetzen eines NA -Werts mit Null scheint ziemlich merkwürdiges Verhalten zu erwarten. R berücksichtigt NA Werte fehlen (obwohl weit hinter Szenen versteckt, wo Sie (nie) gehen müssen, sind sie sehr große Zahlen, wenn numerisch))

Alles was Sie tun müssen, ist A>0 oder as.numeric(A>0) , wenn Sie wollen, dass 0,1 nicht TRUE, FALSE

ist %Vor%

beachte das ifelse(A>0, 1,0) würde auch funktionieren.

Die NA -Werte werden "beibehalten" oder entsprechend behandelt. R ist hier sinnvoll.

    
mnel 28.11.2012 05:44
quelle
1

Versuchen Sie Folgendes:

%Vor%     
Peter S 02.05.2014 08:11
quelle
0

Wenn Sie mit Ganzzahlen arbeiten, können Sie% in%

verwenden

Zum Beispiel, wenn Ihre Zahlen bis zu 2 steigen können %Vor%

andere Leute haben vorgeschlagen,

zu verwenden %Vor%

meine Lösung ist einfacher und gibt Ihnen das gleiche Ergebnis.

%Vor%     
skan 04.04.2017 23:41
quelle

Tags und Links