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:31]
zozlak
r_dplyr_kolumny [2015/01/27 09:06] (aktualna)
zozlak
Linia 6: Linia 6:
 ^ 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()//    ​|
-Funkcje pomocnicze ułatwiające wybór 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//. +
- +
  
 ===== select ===== ===== select =====
Linia 25: Linia 13:
  
   * Pozostawia w [[r_dplyr_tablice|tablicy dplyr-a]] jedynie wymienione kolumny, układając je w takiej kolejności,​ w jakiej zostały wymienione.   * 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//​.   * Umożliwia również zmianę nazw kolumn - składnia: //nowaNazwa = staraNazwa//​.
-  * Dostępne są funkcje pomocnicze ułatwiające wybór wielu kolumn (patrz //podsumowanie//):+  * 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: 
 +
 +# 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 =====
  
-//​**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 ==== 
 + 
 +<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 =====
  
-//​**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 ==== 
 + 
 +<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 ===== ===== transmutate =====
  
-//**transmutate**(tabela, definicjaKolumny1,​ ...)//+//**transmute**(tabela, definicjaKolumny1,​ ...)//
  
-===== Przykłady =====+  * 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>​ +<​code ​rsplus
-dane = data.frame(id = 1:3, litera = c('​a',​ '​b',​ '​c'​),​ rzymska = c('​I',​ '​II',​ '​III'​)+dane = data.frame(arabska ​= 1:3, litera = c('​a',​ '​b',​ '​c'​),​ rzymska = c('​I',​ '​II',​ '​III'​))
-select(dane,​ litera, id)+
  
 +transmute(dane,​ arabskaRzymska = paste(arabska,​ rzymska), arabskaLitera = paste(arabska,​ litera))
 # wynikiem będzie: # wynikiem będzie:
 # #
-litera id +arabskaRzymska arabskaLitera 
-      +           1 I           ​1 ​a 
-     b  2 +#           2 II           2 b 
-#      ​c  3+#          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 
 +#      ​      4 
 +#      ​2       4 
 +#      2       4
 </​code>​ </​code>​
  
r_dplyr_kolumny.1418812261.txt.gz · ostatnio zmienione: 2014/12/17 11:31 przez zozlak