Negation von% in% in R [duplizieren]

7

Gibt es eine kurze Negation von %in% in R wie !%in% oder %!in% ?

Natürlich kann ich c("A", "B") %in% c("B", "C") by !(c("A", "B") %in% c("B", "C")) negieren (vgl. diese Frage ) aber Ich würde einen geradlinigeren Ansatz bevorzugen und ein Paar Klammern speichern (gleichermaßen würden vermutlich die meisten Leute c("A", "B") != c("B", "C") über !(c("A", "B") == c("B", "C")) bevorzugen).

    
Qaswed 13.07.2016, 12:31
quelle

4 Antworten

16

Nein, dafür gibt es keine eingebaute Funktion, aber Sie könnten es einfach mit

selbst programmieren %Vor%

Oder

%Vor%

Siehe diesen Diskussionsfaden und die folgende Diskussion: % in% operator - NOT IN

Außerdem wurde darauf hingewiesen, dass das Paket Hmisc den Operator %nin% enthält. Wenn Sie es also für Ihre Anwendungen verwenden, ist es bereits vorhanden.

%Vor%     
catastrophic-failure 13.07.2016, 12:41
quelle
6

Sie können immer einen erstellen:

%Vor%

Ansonsten gibt es eine ähnliche Funktion mit setdiff , die die eindeutigen Elemente von a zurückgibt, die nicht in b sind:

%Vor%     
plannapus 13.07.2016 12:41
quelle
4

Tatsächlich brauchen Sie keine zusätzlichen Klammern, !c("A", "B") %in% c("B", "C") funktioniert.

Wenn Sie etwas bevorzugen, das einfacher liest, definieren Sie es einfach selbst:

%Vor%

Das hat den Vorteil, keine Mühe zu verschwenden - wir bekommen kein Ergebnis und negieren es dann, wir bekommen das Ergebnis direkt. (Der Unterschied sollte im Allgemeinen trivial sein)

    
MichaelChirico 13.07.2016 12:40
quelle
0

Die Funktion %!in% ist jetzt in library(operators)

verfügbar     
ReindertVanHerreweghe 14.11.2017 09:14
quelle

Tags und Links