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:46]
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 62: Linia 65:
 ==== Przykład ==== ==== Przykład ====
  
-<​code>​+<​code ​rsplus>
 dane = data.frame(x = c(1, 1, 1), y = c(1, 2, 1)) dane = data.frame(x = c(1, 1, 1), y = c(1, 2, 1))
 distinct(dane) distinct(dane)
Linia 72: Linia 75:
 </​code>​ </​code>​
  
-===== semi_join =====+===== 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 90: 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 109: 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>​
  
 +===== sample_frac =====
 +
 +//​**sample_frac**(tablica,​ odsetek, czyZeZwracaniem,​ wagi)//
 +
 +  * Pozostawia w //tablicy// losowo wybrane odsetek 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_frac(dane,​ 0.5)
 +# wynikiem będzie tablica o 5 wierszach, żadna wartość nie będzie się powtarzać
 +
 +sample_frac(dane,​ 0.7, TRUE)
 +# wynikiem będzie tablica o 7 wierszach, wartoś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**(tablica,​ liczbaWierszy,​ czyZeZwracaniem,​ 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>​
r_dplyr_wiersze.1421678764.txt.gz · ostatnio zmienione: 2015/01/19 15:46 przez zozlak