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

Einen Kommentar hinzufügen

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