Narzędzia użytkownika

Narzędzia witryny


r_zlaczenia

Złączanie danych

W ogólności istnieje bardzo wiele różnych sposobów złączania dwóch zbiorów danych, tutaj ograniczymy się jednak do omówienia trzech najważniejszych:

  • left_join dołączenia do danych z jednego zbioru (A) pasujących informacji z drugiego zbioru (B);
  • inner_join złączenie pasujących (i tylko pasujących) danych z dwóch zbiorów;
  • full_join pełne złączenie dwóch zbiorów danych;

Rekordy ze zbiorów złączane są na podstawie wartości zmiennych o jednakowych nazwach w obydwu zbiorach - jeśli wszystkie wspólne zmienne mają takie same wartości, wtedy rekordy uznawane są za pasujące do siebie.

Podsumowanie w. w. złączeń przedstawia tabela poniżej:

rodzaj złączenia rekordy w zbiorze złączonym wartości zmiennych w zbiorze złączonym
left_join wszystkie ze zbioru A Zmienne ze zbioru A - jak w zbiorze A
Zmienne ze zbioru B - jak w zbiorze B, jeśli dany rekord dopasowano do zbioru A, braki danych w przeciwnym wypadku.
inner_join wspólne dla zbiorów A i B Zmienne ze zbioru A - jak w zbiorze A
Zmienne ze zbioru B - jak w zbiorze B
full_join wszystkie ze zbiorów A i B Zmienne ze zbioru A - jak w zbiorze A, jeśli dany rekord dopasowano do zbioru B, braki danych w przeciwnym wypadku.
Zmienne ze zbioru B - jak w zbiorze B, jeśli dany rekord dopasowano do zbioru A, braki danych w przeciwnym wypadku.

Graficznie można to przedstawić w następujący sposób:

Przykład

Załóżmy, że posiadamy dwa zbiory danych:

Zbiór A

id_szkoly rok id_obserwacji id_testu wynik
10 2014 100 1 13
10 2014 101 1 15
11 2014 102 2 9
13 2014 103 2 8

Zbiór B

id_szkoly rok nazwa adres
10 2014 SP nr 1 Szkolna 10
11 2014 SP nr 2 Kopernika 3
12 2014 SP nr 3 Konopnickiej 1

Chcemy złączyć informacje o uczniach z informacjami o adresach szkół. Stosując w. w. typy złączeń otrzymamy:
(na szaro zaznaczono kolumny wspólne pomiędzy obydwoma zbiorami danych - na ich podstawie zbiory są do siebie dopasowywane)

left_join(A, B)

id_obserwacji id_testu wynik id_szkoly rok nazwa adres
100 1 13 10 2014 SP nr 1 Szkola 10
101 1 15 10 2014 SP nr 1 Szkola 10
102 2 9 11 2014 SP nr 2 Kopernika 3
103 2 8 13 2014

inner_join(A, B)

id_obserwacji id_testu wynik id_szkoly rok nazwa adres
100 1 13 10 2014 SP nr 1 Szkola 10
101 1 15 10 2014 SP nr 1 Szkola 10
102 2 9 11 2014 SP nr 2 Kopernika 3

full_join(A, B)

id_obserwacji id_testu wynik id_szkoly rok nazwa adres
100 1 13 10 2014 SP nr 1 Szkola 10
101 1 15 10 2014 SP nr 1 Szkola 10
102 2 9 11 2014 SP nr 2 Kopernika 3
103 2 8 13 2014
12 2014 SP nr 3 Konopnickiej 1
r_zlaczenia.txt · ostatnio zmienione: 2015/03/10 13:22 przez zozlak