Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
r_dplyr_wiersze [2015/01/19 16:15] zozlak |
r_dplyr_wiersze [2015/03/10 11:59] 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> | ||
Linia 121: | Linia 155: | ||
==== Przykład ==== | ==== Przykład ==== | ||
- | <code> | + | <code rsplus> |
dane = data.frame(x = 1:10) | dane = data.frame(x = 1:10) | ||
Linia 144: | Linia 178: | ||
==== Przykład ==== | ==== Przykład ==== | ||
- | <code> | + | <code rsplus> |
dane = data.frame(x = 1:10) | dane = data.frame(x = 1:10) | ||