Narzędzia użytkownika

Narzędzia witryny


r_dplyr_wiersze

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_wiersze [2015/01/19 15:45]
zozlak
r_dplyr_wiersze [2015/03/10 11:59] (aktualna)
zozlak [filter]
Linia 11: Linia 11:
       * funkcje matematyczne:​ abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceiling, cos, cosh, cot, coth, exp, floor, log, log10, round, sign, sin, sinh, sqrt, tan, tanh       * funkcje matematyczne:​ abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceiling, cos, cosh, cot, coth, exp, floor, log, log10, round, sign, sin, sinh, sqrt, tan, tanh
       * operatory porównań: <, <=, !=, >=, >, ==, %in%       * operatory porównań: <, <=, !=, >=, >, ==, %in%
-      * operatory logiczne: boolean operations: &, &&, |, ||, !, xor+      * operatory logiczne: &, &&, |, ||, !, xor 
 +  * **Jeśli warunek zawiera alternatywę (operator |), to należy wziąć go w nawias**, aby uniknąć problemów z priorytetem operatorów,​ np.  
 +    * //​filter(tablica,​ a, b | c)// odfiltruje //(a i b) lub c//,  
 +    * dopiero //​filter(tablica,​ a, (b | c))// odfiltruje //a i (b lub c)//
  
 ==== Przykład ==== ==== Przykład ====
  
-<​code>​+<​code ​rsplus>
 t1 = data.frame(id = 11:16, zmienna1 = c('​a',​ '​b',​ '​c',​ '​d',​ '​e',​ '​f'​)) t1 = data.frame(id = 11:16, zmienna1 = c('​a',​ '​b',​ '​c',​ '​d',​ '​e',​ '​f'​))
  
Linia 43: Linia 46:
 ==== Przykład ==== ==== Przykład ====
  
-<​code>​+<​code ​rsplus>
 t1 = data.frame(id = 11:16, zmienna1 = c('​a',​ '​b',​ '​c',​ '​d',​ '​e',​ '​f'​)) t1 = data.frame(id = 11:16, zmienna1 = c('​a',​ '​b',​ '​c',​ '​d',​ '​e',​ '​f'​))
 slice(t1, c(2, 4, 6)) slice(t1, c(2, 4, 6))
Linia 54: Linia 57:
 </​code>​ </​code>​
  
-===== semi_join =====+===== distinct ===== 
 + 
 +//​**distinct**(tablica)//​ 
 + 
 +  * Usuwa z tablicy duplikaty (aby wiersze uznać za duplikaty, muszą mieć jednakowe wartości we wszystkich kolumnach). 
 + 
 +==== Przykład ==== 
 + 
 +<code rsplus>​ 
 +dane = data.frame(x = c(1, 1, 1), y = c(1, 2, 1)) 
 +distinct(dane) 
 +# wynikiem będzie: 
 +
 +# x y 
 +# 1 1 
 +# 1 2 
 +</​code>​ 
 + 
 +===== semi_join, intersect ​=====
  
 //​**semi_join**(tablica1,​ tablica2)// //​**semi_join**(tablica1,​ tablica2)//
 +
 +//​**intersect**(tablica1,​ tablica2)//
  
   * Pozostawia w //​tablicy1//​ tylko te wiersze, które pasują do jakiegoś wiersza tablicy //​tablica2//​.   * Pozostawia w //​tablicy1//​ tylko te wiersze, które pasują do jakiegoś wiersza tablicy //​tablica2//​.
-    * Porównanie ​dokonywane jest tylko na podstawie kolumn wspólnych dla obydwu tablic.+    * W wypadku //​semi_join()//​ porównanie ​dokonywane jest tylko na podstawie kolumn wspólnych dla obydwu tablic
 +    * W wypadku //​intersect()//​ obydwie tablice muszą posiadać identyczny zestaw kolumn.
  
 ==== Przykład ==== ==== Przykład ====
  
-<​code>​+<​code ​rsplus>
 t1 = data.frame(id = 1:3, zmienna1 = c('​a',​ '​b',​ '​c'​)) t1 = data.frame(id = 1:3, zmienna1 = c('​a',​ '​b',​ '​c'​))
 t2 = data.frame(id = 2:4, zmienna2 = c('​x',​ '​y',​ '​z'​)) t2 = data.frame(id = 2:4, zmienna2 = c('​x',​ '​y',​ '​z'​))
Linia 72: Linia 96:
 #  2        b #  2        b
 #  3        c #  3        c
 +
 +intersect(t1,​ t2)
 +# wynikiem będzie:
 +#
 +# BŁĄD: not compatible
 +
 +intersect(t1 %>% select(id), t2 %>% select(id))
 +# wynikiem będzie:
 +#
 +# id
 +#  2
 +#  3
 </​code>​ </​code>​
  
-===== anti_join =====+===== anti_join, setdiff ​=====
  
 //​**anti_join**(tablica1,​ tablica2)// //​**anti_join**(tablica1,​ tablica2)//
  
-  ​* Pozostawia w //​tablicy1//​ tylko te wiersze, które pasują do jakiegoś ​wiersza tablicy //​tablica2//​. + 
-    * Porównanie ​dokonywane jest tylko na podstawie kolumn wspólnych dla obydwu tablic.+//​**setdiff**(tablica1,​ tablica2)//​ 
 + 
 +  ​* Pozostawia w //​tablicy1//​ tylko te wiersze, które ​nie pasują do żadnego ​wiersza tablicy //​tablica2//​. 
 +    * W wypadku //​anti_join()//​ porównanie ​dokonywane jest tylko na podstawie kolumn wspólnych dla obydwu tablic
 +    * W wypadku //​setdiff()//​ obydwie tablice muszą posiadać identyczny zestaw kolumn.
  
 ==== Przykład ==== ==== Przykład ====
  
-<​code>​+<​code ​rsplus>
 t1 = data.frame(id = 1:3, zmienna1 = c('​a',​ '​b',​ '​c'​)) t1 = data.frame(id = 1:3, zmienna1 = c('​a',​ '​b',​ '​c'​))
 t2 = data.frame(id = 2:4, zmienna2 = c('​x',​ '​y',​ '​z'​)) t2 = data.frame(id = 2:4, zmienna2 = c('​x',​ '​y',​ '​z'​))
 +
 anti_join(t1,​ t2) anti_join(t1,​ t2)
 # wynikiem będzie: # wynikiem będzie:
Linia 91: Linia 132:
 # id zmienna1 # id zmienna1
 #  1        a #  1        a
 +
 +setdiff(t1, t2)
 +# wynikiem będzie:
 +#
 +# BŁĄD: not compatible
 +
 +setdiff(t1 %>% select(id), t2 %>% select(id))
 +# wynikiem będzie:
 +#
 +# id
 +#  1
 </​code>​ </​code>​
  
-===== distinct ​=====+===== sample_frac ​=====
  
-//**distinct**(tablica)//​+//**sample_frac**(tablica, odsetek, czyZeZwracaniem,​ wagi)//
  
-  * Usuwa z tablicy ​duplikaty (aby wiersze uznać za duplikatymuszą mieć jednakowe wartości we wszystkich kolumnach).+  * Pozostawia w //tablicy// losowo wybrane odsetek wierszy. 
 +  * Parametr określający,​ czy losować ze zwracaniem jest nieobowiązkowy. Jeśli nie zostanie określonylosowani odbędzie się bez zwracania. 
 +  * Parametr określający wagi jest nieobowiązkowy. Jeśli nie zostanie określony, wszystkie wiersze będą miały równe prawdopodobieństwa wylosowania.
  
 ==== Przykład ==== ==== Przykład ====
  
-<​code>​ +<​code ​rsplus
-dane = data.frame(x = c(1, 11), c(12, 1)+dane = data.frame(x = 1:10) 
-distinct(dane) + 
-# wynikiem będzie: +sample_frac(dane0.5) 
-# +# wynikiem będzie tablica o 5 wierszachżadna wartość nie będzie się powtarzać 
-# x y + 
-1 1 +sample_frac(dane,​ 0.7, TRUE) 
-# 1 2+# wynikiem będzie tablica o 7 wierszachwartości mogą się powtarzać 
 + 
 +sample_frac(dane,​ 0.7, F, x) 
 +# wynikiem będzie tablica o 7 wierszach, wartości nie będą się powtarzać, pradopodobieństwo wylosowania liczby będzie proporcjonalne do wartości liczby 
 +</​code>​ 
 + 
 +===== sample_n ===== 
 + 
 +//​**sample_n**(tablicaliczbaWierszyczyZeZwracaniem,​ wagi)// 
 + 
 +  * Pozostawia w //tablicy// losowo wybraną liczbę wierszy. 
 +  * Parametr określający,​ czy losować ze zwracaniem jest nieobowiązkowy. Jeśli nie zostanie określony, losowani odbędzie się bez zwracania. 
 +  * Parametr określający wagi jest nieobowiązkowy. Jeśli nie zostanie określony, wszystkie wiersze będą miały równe prawdopodobieństwa wylosowania. 
 + 
 +==== Przykład ==== 
 + 
 +<code rsplus>​ 
 +dane = data.frame(x = 1:10
 + 
 +sample_n(dane, 5
 +# wynikiem będzie ​tablica o 5 wierszach, żadna wartość nie będzie się powtarzać 
 + 
 +sample_n(dane,​ 7, TRUE) 
 +wynikiem będzie tablica o 7 wierszach, wartości mogą się powtarzać 
 + 
 +sample_n(dane,​ 7, F, x) 
 +wynikiem będzie tablica o 7 wierszach, wartości nie będą się powtarzać, pradopodobieństwo wylosowania liczby będzie proporcjonalne do wartości liczby
 </​code>​ </​code>​
r_dplyr_wiersze.1421678719.txt.gz · ostatnio zmienione: 2015/01/19 15:45 przez zozlak