Hoe u de “not in”-operator in r gebruikt (met voorbeelden)


U kunt de volgende basissyntaxis gebruiken om alle elementen te selecteren die niet in een waardenlijst in R staan:

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

De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld 1: Hoe u “NOT IN” gebruikt met vectoren

De volgende code laat zien hoe je alle waarden van een vector in R selecteert die niet in een bepaalde lijst met waarden voorkomen:

 #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

Alle waarden die niet gelijk zijn aan 3 of 4 worden weergegeven in de uitvoer.

Merk op dat we dezelfde syntaxis kunnen gebruiken om alle elementen van een vector te selecteren die niet in een bepaalde lijst met tekens voorkomen:

 #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 waarden die niet gelijk zijn aan „A“ of „C“ worden weergegeven in de uitvoer.

Voorbeeld 2: Hoe u “NOT IN” gebruikt met dataframes

De volgende code laat zien hoe u alle rijen van een dataframe in R selecteert waarin een bepaalde kolom niet gelijk is aan bepaalde waarden:

 #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

Houd er rekening mee dat alle rijen die geen ‚A‘ of ‚B‘ in de teamkolom hebben, worden geretourneerd.

We kunnen ook een vergelijkbare syntaxis gebruiken om alle rijen te selecteren waarin een bepaalde kolom niet gelijk is aan bepaalde numerieke waarden:

 #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

Houd er rekening mee dat alle rijen die niet gelijk zijn aan 89 of 99 in de puntenkolom worden geretourneerd.

Aanvullende bronnen

Hoe de %in%-operator in R te gebruiken
Hoe een dataframe in R te subsetten
Lijsten subsetten in R

Einen Kommentar hinzufügen

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