Narzędzia użytkownika

Narzędzia witryny


r_dplyr_zlaczanie

To jest stara wersja strony!


Czasowniki dplyra - złączenie tablic

inner_join, left_join, right_join, full_join

inner_join(tablica1, tablica2)

left_join(tablica1, tablica2)

right_join(tablica1, tablica2)

full_join(tablica1, tablica2)

Przykład

t1 = data.frame(arabskie = 1:3, litery = c('a', 'b', 'c'))
t2 = data.frame(arabskie = 2:4, rzymskie = c('II', 'III', 'IV'))

left_join(t1, t2)
# wynikiem będzie:
#
# arabskie litery rzymskie
#        1      a     <NA>
#        2      b       II
#        3      c      III

right_join(t1, t2))
# wynikiem będzie:
#
# arabskie litery rzymskie
#        2      b       II
#        3      c      III
#        4   <NA>       IV

inner_join(t1, t2))
# wynikiem będzie:
#
# arabskie litery rzymskie
#        2      b       II
#        3      c      III

outer_join(t1, t2))
# arabskie litery rzymskie
#        1      a     <NA>
#        2      b       II
#        3      c      III
#        4   <NA>       IV

bind_rows, bind_cols

bind_rows(tablica1, tablica12, …)
lub
bind_rows(list(tablica1, tablica2, …))

bind_cols(tablica1, tablica2, …)
lub
bind_cols(list(tablica1, tablica2, …))

  • Złącza tablice dplyr-a wierszami/kolumnami.
  • Co do zasady odpowiedniki rbind() / cbind(), ale:
    • Tablice można przekazać także w postaci listy;
    • Przy złączaniu wierszami tablice mogą mieć różne liczby kolumn:
      • dopasowanie następuje po nazwach kolumn;
      • jeśli dana kolumna nie występuje w danej tablicy, zostanie uzupełniona brakami danych.
    • Przy złączaniu kolumnami tablice muszą mieć jednakową liczbę wierszy.
      • Nazwy kolumn nie są weryfikowane, tzn. kolumny o jednakowych nazwach mogą występować w kilku złączanych tabelach (patrz przykład).

Przykład

t1 = data.frame(a = 1:3)
t2 = data.frame(a = 11:13, b = -1:-3)

bind_rows(t1, t2)
bind_rows(list(t1, t2))
# wynikiem będzie:
#
#  a  b
#  1 NA
#  2 NA
#  3 NA
# 11 -1
# 12 -2
# 13 -3

bind_rows(list(t1), t2)
# wynikiem będzie (wszystkie argumenty poza pierwszym zostaną pominięte):
#
#  a
#  1
#  2
#  3

bind_cols(t1, t2)
# wynikiem będzie:
#
# a  a  b
# 1 11 -1
# 2 12 -2
# 3 13 -3

union, intersect, setdiff

union(tablica1, tablica2)

  • Złącza przekazane tablice dplyr-a wierszami, przy czym pomija duplikaty wierszy.
  • Obydwie tablice muszą posiadać jednakową liczbę jednakowo nazwanych kolumn jednakowych typów.

Przykład

t1 = data.frame(a = 1:3, b = 11:13)
t2 = data.frame(a = 2:4, b = 12:14)

union(t1, t2)
# wynikiem będzie:
#
# a  b
# 4 14
# 3 13
# 2 12
# 1 11
r_dplyr_zlaczanie.1421697628.txt.gz · ostatnio zmienione: 2015/01/19 21:00 przez zozlak