Verwendung des „not in“-operators in r (mit beispielen)


Sie können die folgende grundlegende Syntax verwenden, um alle Elemente auszuwählen, die nicht in einer Werteliste in R enthalten sind:

 ! (data %in% c(value1, value2, value3, ...))

Die folgenden Beispiele zeigen, wie Sie diese Syntax in der Praxis anwenden können.

Beispiel 1: Verwendung von „NOT IN“ mit Vektoren

Der folgende Code zeigt, wie alle Werte eines Vektors in R ausgewählt werden, die nicht in einer bestimmten Werteliste enthalten sind:

 #define numeric vector
num_data <- c(1, 2, 3, 3, 4, 4, 5, 5, 6)

#display all values in vector not equal to 3 or 4
num_data[ ! (num_data %in% c(3, 4))]

[1] 1 2 5 5 6

In der Ausgabe werden alle Werte angezeigt, die ungleich 3 oder 4 sind .

Beachten Sie, dass wir dieselbe Syntax verwenden können, um alle Elemente eines Vektors auszuwählen, die nicht in einer bestimmten Zeichenliste enthalten sind:

 #define vector of character data
char_data <- c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'D')

#display all elements in vector not equal to 'A', or 'C'
char_data[ ! (char_data %in% c('A', 'C'))]

[1] “B” “B” “D” “D” “D”

Alle Werte, die ungleich „A“ oder „C“ sind, werden in der Ausgabe angezeigt.

Beispiel 2: Verwendung von „NOT IN“ mit Datenrahmen

Der folgende Code zeigt, wie alle Zeilen eines Datenrahmens in R ausgewählt werden, in denen eine bestimmte Spalte nicht bestimmten Werten entspricht:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (team %in% c('A', 'B')))

  team points assists
5 C 99 32
6 C 92 39
7 D 97 14

Beachten Sie, dass alle Zeilen zurückgegeben werden, die kein „A“ oder „B“ in der Teamspalte haben.

Wir können eine ähnliche Syntax auch verwenden, um alle Zeilen auszuwählen, in denen eine bestimmte Spalte nicht bestimmten numerischen Werten entspricht:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (points %in% c(89, 99)))

  team points assists
1 A 77 19
2 A 81 22
4 B 83 15
6 C 92 39
7 D 97 14

Beachten Sie, dass alle Zeilen zurückgegeben werden, die in der Punktespalte ungleich 89 oder 99 sind.

Zusätzliche Ressourcen

So verwenden Sie den %in%-Operator in R
So unterteilen Sie einen Datenrahmen in R
So unterteilen Sie Listen in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert