Jak używać operatora rur w r (z przykładami)
Możesz użyć operatora potoku ( %>% ) w R, aby „potokować” sekwencję operacji razem.
Operator ten jest najczęściej używany z pakietem dplyr w R do wykonywania sekwencji operacji na ramce danych.
Podstawowa składnia operatora potoku jest następująca:
df %>%
do_this_operation %>%
then_do_this_operation %>%
then_do_this_operation ...
Operator potoku po prostu przekazuje wyniki jednej operacji do następnej operacji znajdującej się poniżej.
Zaletą stosowania operatora potoku jest to, że sprawia, że kod jest niezwykle łatwy do odczytania.
Poniższe przykłady pokazują, jak używać operatora potoku w różnych scenariuszach ze zbiorem danych mtcars wbudowanym w R.
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
Przykład 1: Użyj operatora potoku do podsumowania zmiennej
Poniższy kod pokazuje, jak używać operatora potoku ( %>% ) do grupowania według zmiennej cyl , a następnie podsumowywania średniej wartości zmiennej mpg :
library (dplyr)
#summarize mean mpg grouped by cyl
mtcars %>%
group_by(cyl) %>%
summarize(mean_mpg = mean(mpg))
# A tibble: 3 x 2
cyl mean_mpg
1 4 26.7
2 6 19.7
3 8 15.1
Z wyniku możemy zobaczyć:
- Średnia wartość mpg dla samochodów o liczbie cylindrów 4 wynosi 26,7 .
- Średnia wartość mpg dla samochodów o liczbie cylindrów 6 wynosi 19,7 .
- Średnia wartość mpg dla samochodów o liczbie cylindrów 8 wynosi 15,1 .
Zwróć uwagę, jak operator potoku ułatwia również interpretację kodu.
W zasadzie mówi:
- Weź ramkę danych mtcars .
- Pogrupuj je według zmiennej cyl .
- Następnie podsumuj średnią wartość zmiennej mpg .
Przykład 2: Użycie operatora Pipe do grupowania i podsumowywania wielu zmiennych
Poniższy kod pokazuje, jak używać operatora potoku ( %>% ) do grupowania według zmiennych cyl i am , a następnie podsumowywania średniej zmiennej mpg i odchylenia standardowego zmiennej hp :
library (dplyr)
#summarize mean mpg and standard dev of hp grouped by cyl and am
mtcars %>%
group_by(cyl, am) %>%
summarize(mean_mpg = mean(mpg),
sd_hp = sd(hp))
# A tibble: 6 x 4
# Groups: cyl[3]
cyl am mean_mpg sd_hp
1 4 0 22.9 19.7
2 4 1 28.1 22.7
3 6 0 19.1 9.18
4 6 1 20.6 37.5
5 8 0 15.0 33.4
6 8 1 15.4 50.2
Z wyniku możemy zobaczyć:
- W przypadku samochodów o liczbie cylindrów wynoszącej 4 i wartości am wynoszącej 0, średnia wartość mpg wynosi 22,9 , a odchylenie standardowe wartości KM wynosi 19,7 .
- W przypadku samochodów o liczbie cylindrów 4 i wartości am 1, średnia wartość mpg wynosi 28,1 , a odchylenie standardowe wartości KM wynosi 22,7 .
I tak dalej.
Ponownie zwróć uwagę, jak operator potoku ułatwia również interpretację kodu.
W zasadzie mówi:
- Weź ramkę danych mtcars .
- Pogrupuj je według zmiennych cyl i am .
- Następnie podsumuj średnią wartość zmiennej mpg i odchylenie standardowe zmiennej hp .
Przykład 3: Użyj operatora Pipe do utworzenia nowych zmiennych
Poniższy kod pokazuje, jak używać operatora potoku ( %>% ) z funkcją mutate w pakiecie dplyr w celu utworzenia dwóch nowych zmiennych w ramce danych mtcars:
library (dplyr)
#add two new variables in mtcars
new_mtcars <- mtcars %>%
mutate(mpg2 = mpg*2,
mpg_root = sqrt(mpg))
#view first six rows of new data frame
head(new_mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb mpg2 mpg_root
1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 42.0 4.582576
2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 42.0 4.582576
3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 45.6 4.774935
4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 42.8 4.626013
5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 37.4 4.324350
6 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 36.2 4.254409
Z wyniku możemy zobaczyć:
- Nowa kolumna mpg2 zawiera wartości z kolumny mpg pomnożone przez 2.
- Nowa kolumna mpg_root zawiera pierwiastek kwadratowy z wartości w kolumnie mpg .
Ponownie zwróć uwagę, jak operator potoku ułatwia również interpretację kodu.
W zasadzie mówi:
- Weź ramkę danych mtcars .
- Utwórz nową kolumnę o nazwie mpg2 i nową kolumnę o nazwie mpg_root .
Powiązane: Jak używać funkcji transmute() w dplyr
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak używać innych typowych funkcji w R:
Jak używać operatora tyldy (~) w R
Jak używać operatora znaku dolara ($) w R
Jak używać operatora „NOT IN” w R
Jak używać operatora%in% w R