Narzędzia użytkownika

Narzędzia witryny


r_dplyr_sortowanie

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
Ostatnia wersja Both sides next revision
r_dplyr_sortowanie [2014/12/17 12:12]
zozlak utworzono
r_dplyr_sortowanie [2015/01/27 09:07]
zozlak
Linia 1: Linia 1:
 +====== Czasowniki dplyr zarządzające kolumnami (zmiennymi) ======
 +
 +===== Podsumowanie =====
 +
 +|                                    ^ Usuń niewymienione kolumny ^ Pozostaw niewymienione kolumny ^
 +^ Zmień nazwy i/lub kolejność kolumn | //​select()// ​              | //​rename()// ​                  |
 +^ Stwórz nową kolumnę ​               | //​transmutate()// ​         | //​mutate()// ​                  |
 +^ Zmień wartości kolumny ​            | //​transmutate()// ​         | //mutate(), mutate_each()// ​   |
 +
 +===== select =====
 +
 +//​**select**(tablica,​ kolumna1, ...)//
 +
 +  * Pozostawia w [[r_dplyr_tablice|tablicy dplyr-a]] jedynie wymienione kolumny, układając je w takiej kolejności,​ w jakiej zostały wymienione.
 +    * Dodanie znaku //-// przed nazwą zmiennej spowoduje jej usunięcie.
 +  * Umożliwia również zmianę nazw kolumn - składnia: //nowaNazwa = staraNazwa//​.
 +  * Dostępne są funkcje pomocnicze ułatwiające wybór wielu kolumn:
 +    * wszystkie kolumny pomiędzy dwoma wskazanymi: //​**kolumnaOd : kolumnaDo**//;​
 +    * kolumny, których nazwa (wszystkie przyjmują argument //​ignore.case//​ umożliwiający pominięcie wielkości znaków):
 +      * kończy się na x: //​**ends_with**(x)//​
 +      * rozpoczyna się od x: //​**starts_with**(x)//​
 +      * zawiera x: //​**contains**(x)//​
 +      * pasuje do wyrażenia regularnego x: //​**matches**(x)//​
 +      * pasuje do sekwencji nazw: //​**num_range**(prefiks,​ wektorLiczb,​ liczbaZnakówLiczby)//​
 +        * np. //​num_range('​p',​ 1:3, 2)// pasuje do kolumn //p01, p02, p03//.
 +
 +==== Przykład ====
 +
 +<code rsplus>
 +dane = data.frame(arabska = 1:3, litera = c('​a',​ '​b',​ '​c'​),​ rzymska = c('​I',​ '​II',​ '​III'​))
 +
 +select(dane,​ litera, id)
 +# wynikiem będzie:
 +#
 ====== Czaswoniki dplyr - sortowanie ====== ====== Czaswoniki dplyr - sortowanie ======
  
Linia 10: Linia 44:
 ==== Przykład ==== ==== Przykład ====
  
-<​code>​+<​code ​rsplus>
 dane = data.frame(x = rep(2:1, 3), y = 1:6) dane = data.frame(x = rep(2:1, 3), y = 1:6)
  
 dane dane
 # x y # x y
 +# ---
 # 2 1 # 2 1
 # 1 2 # 1 2
Linia 26: Linia 61:
 # #
 # x y # x y
 +# ---
 # 1 6 # 1 6
 # 1 4 # 1 4
Linia 34: Linia 70:
 </​code>​ </​code>​
  
 +# litera id
 +#      a  1
 +#      b  2
 +#      c  3
 +
 +select(dane,​ ends_with('​KA'​))
 +select(dane,​ ends_with('​ka'​))
 +# wynikiem obydwu będzie:
 +#
 +# arabska rzymska
 +#       ​1 ​      I
 +#       ​2 ​     II
 +#       ​3 ​    III
 +
 +select(dane,​ ends_with('​KA',​ FALSE))
 +# wynikiem będzie:
 +#
 +# ramka danych z zerową liczbą kolumn oraz 3 wierszami
 +
 +select(dane,​ starts_with('​ar'​),​ litera)
 +# wynikiem obydwu będzie:
 +#
 +# arabska litera
 +#       ​1 ​     a
 +#       ​2 ​     b
 +#       ​3 ​     c
 +</​code>​
 +
 +===== rename =====
 +
 +//​**rename**(tabela,​ nazwaPo1 = nazwaPrzed1,​ ...)//
 +
 +  * Zmienia nazwy kolumn w [[r_dplyr_tablice|tablicy dplyr-a]].
 +    * Możliwa jest zmiana nazwy wielu kolumn jednocześnie.
 +
 +==== Przykład ====
 +
 +<code rsplus>
 +dane = data.frame(arabska = 1:3, litera = c('​a',​ '​b',​ '​c'​),​ rzymska = c('​I',​ '​II',​ '​III'​))
 +
 +rename(dane,​ arabska2 = arabska, Litera = litera)
 +# wynikiem będzie:
 +#
 +# arabska2 Litera rzymska
 +#        1      a       I
 +#        2      b      II
 +#        3      c     III
 +</​code>​
 +
 +===== mutate =====
 +
 +//​**mutate**(tabela,​ nazwaKolumny1 = definicjaKolumny1,​ ...)//
 +
 +  * Tworzy nowe kolumny w [[r_dplyr_tablice|tablicy dplyr-a]].
 +  * Jeśli na [[r_dplyr_tablice|tablicy dplyr-a]] zostało określone grupowanie (np. czasownikiem [[r_dplyr_agreagety#​group_by|group_by]]),​ wtedy obliczanie wartości odbywać się będzie w ramach tego podziału.
 +  * Jeśli nazwa tworzonej kolumny będzie się pokrywać z już istniejącą kolumną, dotychczasowe wartości kolumny zostaną nadpisane nowymi.
 +
 +==== Przykład ====
 +
 +<code rsplus>
 +dane = data.frame(arabska = 1:3, litera = c('​a',​ '​b',​ '​c'​),​ rzymska = c('​I',​ '​II',​ '​III'​))
 +
 +mutate(dane,​ arabskaRzymska = paste(arabska,​ rzymska), arabskaLitera = paste(arabska,​ litera))
 +# wynikiem będzie:
 +#
 +# arabska litera rzymska arabskaRzymska arabskaLitera
 +#       ​1 ​     a       ​I ​           1 I           1 a
 +#       ​2 ​     b      II           2 II           2 b
 +#       ​3 ​     c     ​III ​         3 III           3 c
 +
 +dane = data.frame(grupa = c(1, 1, 2, 2, 2), wartosc = 1:5)
 +
 +mutate(dane,​ srednia = mean(wartosc))
 +# wynikiem będzie:
 +#
 +#  grupa wartosc srednia
 +#      1       ​1 ​      3
 +#      1       ​2 ​      3
 +#      2       ​3 ​      3
 +#      2       ​4 ​      3
 +#      2       ​5 ​      3
 +
 +dane = group_by(dane,​ grupa)
 +mutate(dane,​ srednia = mean(wartosc))
 +# wynikiem będzie:
 +#
 +#  grupa wartosc srednia
 +#      1       ​1 ​    1.5
 +#      1       ​2 ​    1.5
 +#      2       ​3 ​      4
 +#      2       ​4 ​      4
 +#      2       ​5 ​      4
 +
 +</​code>​
 +
 +===== mutate_each =====
 +
 +//​**mutate_each**(tabela,​ funs(funkcja)//​
 +
 +  * Nadpisuje wartości wszystkich kolumn w [[r_dplyr_tablice|tablicy dplyr-a]] poprzez zastosowanie do nich wskazanej funkcji.
 +    * Jeśli do //funs// przekazanych zostanie wiele funkcji, powstanie tyle nowych kolumn (zmiennych),​ ile wynosi liczba przekazanych funkcji razy liczba kolumn w [[r_dplyr_tablice|tablicy dplyr-a]] (patrz przykład).
 +  * Jeśli na [[r_dplyr_tablice|tablicy dplyr-a]] zostało określone grupowanie (np. czasownikiem [[r_dplyr_agreagety#​group_by|group_by]]),​ wtedy obliczanie wartości odbywać się będzie w ramach tego podziału.
 +
 +==== Przykład ====
 +
 +<code rsplus>
 +dane = data.frame(arabska = 1:3, litera = c('​a',​ '​b',​ '​c'​),​ rzymska = c('​I',​ '​II',​ '​III'​),​ stringsAsFactors = F)
 +
 +mutate_each(dane,​ funs(min))
 +# wynikiem będzie:
 +#
 +# arabska litera rzymska
 +#       ​1 ​     a       I
 +#       ​1 ​     a       I
 +#       ​1 ​     a       I
 +
 +mutate_each(dane,​ funs(min, max))
 +# wynikiem będzie:
 +#
 +# arabska litera rzymska arabska_min litera_min rzymska_min arabska_max litera_max rzymska_max
 +#       ​1 ​     a       ​I ​          ​1 ​         a           ​I ​          ​3 ​         c         III
 +#       ​2 ​     b      II           ​1 ​         a           ​I ​          ​3 ​         c         III
 +#       ​3 ​     c     ​III ​          ​1 ​         a           ​I ​          ​3 ​         c         III
 +
 +</​code>​
 +
 +
 +===== transmutate =====
 +
 +//​**transmute**(tabela,​ definicjaKolumny1,​ ...)//
 +
 +  * Tworzy nowe kolumny w [[r_dplyr_tablice|tablicy dplyr-a]], jednocześnie usuwając z niej wszystkie pozostałe kolumny.
 +    * Jest odpowiednikiem złożenia: //​mutate()//​ i //​select()//​ wybierającego tylko kolumny stworzone przez //​mutate()//​.
 +  * Jeśli na [[r_dplyr_tablice|tablicy dplyr-a]] zostało określone grupowanie (np. czasownikiem [[r_dplyr_agreagety#​group_by|group_by]]),​ wtedy obliczanie wartości odbywać się będzie w ramach tego podziału.
 +    * W takim wypadku zachowywane są również te zmienne (kolumny), które wyznaczają grupy.
 +==== Przykład ====
 +
 +<code rsplus>
 +dane = data.frame(arabska = 1:3, litera = c('​a',​ '​b',​ '​c'​),​ rzymska = c('​I',​ '​II',​ '​III'​))
 +
 +transmute(dane,​ arabskaRzymska = paste(arabska,​ rzymska), arabskaLitera = paste(arabska,​ litera))
 +# wynikiem będzie:
 +#
 +# arabskaRzymska arabskaLitera
 +#            1 I           1 a
 +#           2 II           2 b
 +#          3 III           3 c
 +
 +dane = data.frame(grupa = c(1, 1, 2, 2, 2), wartosc = 1:5)
 +
 +transmute(dane,​ srednia = mean(wartosc))
 +# wynikiem będzie:
 +#
 +# srednia
 +#       3
 +#       3
 +#       3
 +#       3
 +#       3
 +
 +dane = group_by(dane,​ grupa)
 +transmute(dane,​ srednia = mean(wartosc))
 +# wynikiem będzie:
 +#
 +#  grupa srednia
 +#      1     1.5
 +#      1     1.5
 +#      2       4
 +#      2       4
 +#      2       4
 +</​code>​
  
r_dplyr_sortowanie.txt · ostatnio zmienione: 2015/03/09 18:56 przez zozlak