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