Hoe de setdiff-functie in r te gebruiken (met voorbeelden)
De functie setdiff() in R kan worden gebruikt om de verschillen tussen twee sets te vinden. Deze functie gebruikt de volgende syntaxis:
setverschil(x,y)
Goud:
- x, y: vectoren of dataframes die een reeks elementen bevatten
Deze tutorial biedt verschillende voorbeelden van praktisch gebruik van deze functie.
Voorbeeld 1: Setdiff met numerieke vectoren
De volgende code laat zien hoe je setdiff() gebruikt om alle waarden in vector a te identificeren die niet voorkomen in vector b :
#definevectors a <- c(1, 3, 4, 5, 9, 10) b <- c(1, 2, 3, 4, 5, 6) #find all values in a that do not occur in b setdiff (a,b) [1] 9 10
Er verschijnen twee waarden in vector a die niet voorkomen in vector b : 9 en 10 .
Als we de volgorde van de vectoren in de functie setdiff() omkeren, kunnen we in plaats daarvan alle waarden in vector b identificeren die niet voorkomen in vector a :
#find all values in b that do not occur in a setdiff (b,a) [1] 2 6
Er verschijnen twee waarden in vector b die niet voorkomen in vector a : 2 en 6 .
Voorbeeld 2: Setdiff met karaktervectoren
De volgende code laat zien hoe je setdiff() gebruikt om alle waarden in de char1- vector te identificeren die niet voorkomen in de char2- vector:
#define character vectors char1 <- c('A', 'B', 'C', 'D', 'E') char2 <- c('A', 'B', 'E', 'F', 'G') #find all values in char1 that do not occur in char2 setdiff (char1, char2) [1] “C” “D”
Voorbeeld 3: Setdiff met dataframes
De volgende code laat zien hoe je setdiff() gebruikt om alle waarden in een dataframekolom te identificeren die niet in dezelfde kolom van een tweede dataframe voorkomen:
#define data frames df1 <- data. frame (team=c('A', 'B', 'C', 'D'), conference=c('West', 'West', 'East', 'East'), dots=c(88, 97, 94, 104)) df2 <- data. frame (team=c('A', 'B', 'C', 'D'), conference=c('West', 'West', 'East', 'East'), dots=c(88, 97, 98, 99)) #find differences between the points columns in the two data frames setdiff (df1$points, df2$points) [1] 94 104
We kunnen zien dat de waarden 94 en 104 verschijnen in de puntkolom van het eerste dataframe, maar niet in de puntkolom van het tweede dataframe.
Aanvullende bronnen
Hoe specifieke kolommen in R op te tellen
Hoe specifieke rijen in R op te tellen
Hoe gedeeltelijke stringmatching uit te voeren in R