A: controleer of de rij van het ene dataframe in een ander dataframe bestaat


U kunt de volgende syntaxis gebruiken om een nieuwe kolom toe te voegen aan een dataframe in R die aangeeft of elke rij in een ander dataframe bestaat:

 df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)

Deze specifieke syntaxis voegt een kolom met de naam exist toe aan het dataframe met de naam df1 en bevat TRUE of FALSE om aan te geven of elke rij in df1 bestaat in een ander dataframe met de naam df2 .

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: controleer of een rij uit het ene dataframe in een ander dataframe bestaat in R

Stel dat we de volgende twee dataframes in R hebben:

 #create first data frame
df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                  dots=c(12, 15, 22, 29, 24))

#view first data frame
df1

  team points
1 to 12
2 B 15
3 C 22
4 D 29
5 E 24

#create second data frame
df2 <- data. frame (team=c('A', 'D', 'F', 'G', 'H'),
                  dots=c(12, 29, 15, 19, 10))

#view second data frame
df2

  team points
1 to 12
2 D 29
3 F 15
4 G 19
5:10 a.m.

We kunnen de volgende syntaxis gebruiken om een kolom met de naam exist toe te voegen aan het eerste dataframe, die aangeeft of elke rij in het tweede dataframe bestaat:

 #add new column to df1 that shows if row exists in df2
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)

#view updated data frame
df1

  team points exists
1 TO 12 TRUE
2 B 15 FALSE
3 C 22 FALSE
4 D 29 TRUE
5 E 24 FALSE

De nieuwe kolom bestaat geeft aan of elke rij in het eerste dataframe bestaat in het tweede dataframe.

Uit het resultaat kunnen we zien:

  • De eerste regel van df1 bestaat in df2 .
  • De tweede regel van df1 bestaat niet in df2 .
  • De derde regel van df1 bestaat niet in df2 .

Enzovoort.

Merk op dat u is.numeric() ook kunt gebruiken om 1s en 0s weer te geven in plaats van TRUE of FALSE in de bestaande kolom:

 #add new column to df1 that shows if row exists in df2
df1$exists <- as. numeric (do. call (paste0, df1) %in% do. call (paste0, df2))

#view updated data frame
df1

  team points exists
1 to 12 1
2 B 15 0
3 C 22 0
4 D 29 1
5 E 24 0

Een waarde van 1 geeft aan dat de rij uit het eerste datablok in het tweede voorkomt.

Omgekeerd geeft een waarde van 0 aan dat de rij in het eerste dataframe niet bestaat in het tweede.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

A: Controleren of meerdere kolommen gelijk zijn
A: Hoe u afzonderlijke rijen in een dataframe selecteert
A: Rijen in een dataframe repliceren

Einen Kommentar hinzufügen

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