Narzędzia użytkownika

Narzędzia witryny


r_dplyr_potoki

Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
r_dplyr_potoki [2014/12/17 11:13]
zozlak
r_dplyr_potoki [2015/01/27 09:06] (aktualna)
zozlak
Linia 7: Linia 7:
 Generalnie istnieją dwa sposoby zapisywania serii takich operacji w R: Generalnie istnieją dwa sposoby zapisywania serii takich operacji w R:
  
-  * Poprzez przypisywanie wyników każdej operacji z osobna do zmiennej:<​code>​+  * Poprzez przypisywanie wyników każdej operacji z osobna do zmiennej:<​code ​rsplus>
 wynik = filter(dane,​ warunek1, warunek2) wynik = filter(dane,​ warunek1, warunek2)
 wynik = group_by(wynik,​ kolumna) wynik = group_by(wynik,​ kolumna)
Linia 15: Linia 15:
     * Tego typu zapis jest nieefektywny,​ bowiem powoduje wielokrotne przepisywanie danych w pamięci (za każdym razem zmienna //wynik// jest niszczona i zapisywana na nowo nowymi danymi).     * Tego typu zapis jest nieefektywny,​ bowiem powoduje wielokrotne przepisywanie danych w pamięci (za każdym razem zmienna //wynik// jest niszczona i zapisywana na nowo nowymi danymi).
       * Problem ten dotyczy szczególnie funkcji R z pakietu //base//, które nie zarządzają pamięcią nazbyt efektywnie.       * Problem ten dotyczy szczególnie funkcji R z pakietu //base//, które nie zarządzają pamięcią nazbyt efektywnie.
-  * Poprzez zagnieżdżanie wywołań funkcji:<​code>​+  * Poprzez zagnieżdżanie wywołań funkcji:<​code ​rsplus>
 wynik = summarize( wynik = summarize(
   group_by(   group_by(
Linia 28: Linia 28:
 Zauważmy przy tym, że przedstawione wyżej operacje **sprowadzają się tak naprawdę do ciągłego przekazywania wyników działania poprzedniej funkcji do kolejnej**. Mając operator (załóżmy,​ że ma on postać //​%>​%//​),​ który umie przekazać wynik operacji po swojej lewej stronie jako pierwszy argument funkcji po swojej prawej stronie (**tzw. //​potok//​**),​ moglibyśmy zastosować zapis: Zauważmy przy tym, że przedstawione wyżej operacje **sprowadzają się tak naprawdę do ciągłego przekazywania wyników działania poprzedniej funkcji do kolejnej**. Mając operator (załóżmy,​ że ma on postać //​%>​%//​),​ który umie przekazać wynik operacji po swojej lewej stronie jako pierwszy argument funkcji po swojej prawej stronie (**tzw. //​potok//​**),​ moglibyśmy zastosować zapis:
  
-<​code>​+<​code ​rsplus>
 wynik = dane %>​% ​ wynik = dane %>​% ​
   filter(warunek1,​ warunek2) %>%   filter(warunek1,​ warunek2) %>%
r_dplyr_potoki.txt · ostatnio zmienione: 2015/01/27 09:06 przez zozlak