Odp.: sprawdź, czy wiersz jednej ramki danych istnieje w innej


Możesz użyć poniższej składni, aby dodać nową kolumnę do ramki danych w R, która wskazuje, czy każdy wiersz istnieje w innej ramce danych:

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

Ta szczególna składnia dodaje kolumnę o nazwie istnieje do ramki danych o nazwie df1 , która zawiera PRAWDA lub FAŁSZ , aby wskazać, czy każdy wiersz w df1 istnieje w innej ramce danych o nazwie df2 .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: sprawdź, czy wiersz z jednej ramki danych istnieje w innej w R

Załóżmy, że mamy w R następujące dwie ramki danych:

 #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.

Możemy użyć następującej składni, aby dodać kolumnę o nazwie istnieje do pierwszej ramki danych, która wskazuje, czy każdy wiersz istnieje w drugiej ramce danych:

 #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

Nowa kolumna istnieje wskazuje, czy każdy wiersz w pierwszej ramce danych istnieje w drugiej ramce danych.

Z wyniku możemy zobaczyć:

  • Pierwsza linia df1 istnieje w df2 .
  • Druga linia df1 nie istnieje w df2 .
  • Trzecia linia df1 nie istnieje w df2 .

I tak dalej.

Pamiętaj, że możesz także użyć metody is.numeric() do wyświetlenia w istniejącej kolumnie 1 i 0 zamiast PRAWDA lub FAŁSZ :

 #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

Wartość 1 oznacza, że wiersz z pierwszego bloku danych istnieje w drugim.

I odwrotnie, wartość 0 oznacza, że wiersz w pierwszej ramce danych nie istnieje w drugiej.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Odp.: Jak sprawdzić, czy wiele kolumn jest równych
Odp.: Jak wybrać pojedyncze wiersze w ramce danych
Odp.: Jak replikować wiersze w ramce danych

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *