dplyr – selekcja atrybutów i aliasowanie

W ostatnim artykule przejrzeliśmy możliwości pakietu pakietu dplyr rozszerzającego możliwości języka R jeśli chodzi o szybkie rozpoznanie danych. Dziś chciałbym zaprezentować jedną z fundamentalnych funkcji wchodzących w skład tego pakietu – chodzi mianowicie o funkcję select. Entuzjaści języka TSQL mogą czuć się jak w domu ponieważ funkcja ta ma podobne znaczenie jak przy manipulacji danymi bazodanowymi. Tak więc zaczynajmy!

Pierwszym krokiem jest oczywiście załadowanie dwóch pakietów: dplyr oraz hflights oraz przypiszmy hflights do obiektu typu tbl_df o nazwie df :

Teraz wprowadzimy podstawową składnię select – poniższe zapytanie pobiera z zestawu df kolumny Year, Month, DayOfYear oraz AirTime:

Results

Pierwszym argumentem jest zestaw danych, a następnie po przecinku lista kolumn, które chcemy wyświetlić. Proste prawda? Szczególnie, że w bazowej implementacji R nie jest to aż tak proste. A to dopiero początek!

Oczywiście możemy układać kolumny w określonej kolejności.  Aby osiągnąć ten efekt można jawnie wskazać wszystkie kolumny w pożądanej przez nas kolejności, albo przedstawić na początek lub koniec daną kolumnę i po nich/przed nimi wyświetlić wszystkie pozostałe. Aby coś takiego osiągnąć możemy użyć funkcji everything() zwracającej wszystkie kolumny zestawu:

Results

Składnia select pozwala nam wybierać kolumny, które zaczynają albo kończą się na określoną frazę – służą ku temu argumenty starts_with i ends_with np. poniższe zapytanie zwraca wszystkie kolumny zaczynające się na “d”:

Results

analogicznie poniższe zapytanie zwróci wszystkie kolumny kończące się na “e”:

Results

Operacje te są bardzo proste – wyobraźcie sobie podobne operacje np. w języku SQL 🙂
Co jednak gdy chcemy użyć bardziej skomplikowanego wzorca? Oczywiście możemy to zrobić używając np. funkcji matches i wyrażeń regularnych np. poniższe zapytanie zwróci wszystkie kolumny kończące się na “h” lub “r”

Results

Bardzo podobną funkcjonalność oferuje argument contains – wyszukuje on jednak kolumny nie według wyrażenia regularnego lecz według tego czy kolumna zawiera
w nazwie dany ciąg znaków (w tym przypadku “ar”):

Results

Dplyr pozwala nam również na nadawanie aliasów – możemy to zrobić poprzez operator przypisania “=”:

Results

lub poprzez użycie dedykowanej do tego funkcji rename:

Results

Jak zapewne zauważyliście jest różnica pomiędzy nadawaniem aliasów w select i rename. Gdy użyjemy select to w rezultacie otrzymamy tylko te kolumny, które zostaną jawnie wskazane, rename z kolei wyświetla wszystkie kolumny z zestawu danych zmienia – wskazanie kolumny służy tylko i wyłącznie nadaniu jej nowego aliasu.

Już jutro powiemy sobie jak przefiltrować dane według określonych warunków – zapraszam!

Adrian Chodkowski
Follow me

Adrian Chodkowski

SQL geek, Data enthusiast, Consultant & Developer
Adrian Chodkowski
Follow me

Latest posts by Adrian Chodkowski (see all)

Leave a Comment

Your email address will not be published. Required fields are marked *