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