Narzędzia użytkownika

Narzędzia witryny


r_zlaczenia

To jest stara wersja strony!


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 Szkola 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:

left_join(A, B)

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

inner_join(A, B)

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