Narzędzia użytkownika

Narzędzia witryny


r_dplyr_kolumny

Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
r_dplyr_kolumny [2014/12/17 11:14]
zozlak
r_dplyr_kolumny [2015/01/27 09:06] (aktualna)
zozlak
Linia 3: Linia 3:
 ===== Podsumowanie ===== ===== Podsumowanie =====
  
-                                   ^ Usuń niewymienione kolumny ^ Pozostaw niewymienione kolumny ^+                                   ^ Usuń niewymienione kolumny ^ Pozostaw niewymienione kolumny ^
 ^ Zmień nazwy i/lub kolejność kolumn | //​select()// ​              | //​rename()// ​                  | ^ Zmień nazwy i/lub kolejność kolumn | //​select()// ​              | //​rename()// ​                  |
 ^ Stwórz nową kolumnę ​               | //​transmutate()// ​         | //​mutate()// ​                  | ^ Stwórz nową kolumnę ​               | //​transmutate()// ​         | //​mutate()// ​                  |
 +^ Zmień wartości kolumny ​            | //​transmutate()// ​         | //mutate(), mutate_each()// ​   |
  
 ===== select ===== ===== select =====
  
-//​**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 ==== ==== Przykład ====
  
-<​code>​+<​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: 
 +
 +# 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>​ </​code>​
  
 ===== rename ===== ===== rename =====
  
-//​**rename**(tabela,​ )//+//​**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 ==== ==== Przykład ====
  
-<​code>​+<​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>​ </​code>​
  
 ===== mutate ===== ===== mutate =====
  
-//​**mutate**(tabela,​ definicjaKolumny1,​ ...)//+//​**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 ==== ==== Przykład ====
  
-<​code>​+<​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>​ </​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 ===== ===== transmutate =====
  
-//**transmutate**(tabela, definicjaKolumny1,​ ...)//+//**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 ==== ==== Przykład ====
  
-<​code>​+<​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>​ </​code>​
  
r_dplyr_kolumny.1418811296.txt.gz · ostatnio zmienione: 2014/12/17 11:14 przez zozlak