[Esteartigofoipublicadopelaprimeiravezem[Thisarticlewasfirstpublishedon Profundamente Trivial, e gentilmente contribuiu para os R-blogueiros]. (Você pode relatar um problema sobre o conteúdo desta página aqui)
Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.
Para a letra F – filtros! Os filtros são incrivelmente úteis, especialmente quando combinados com o canal principal%>%. Eu frequentemente uso filtros junto com as funções ggplot, para mapear um subgrupo específico ou remover casos ou outliers ausentes. Como exemplo, eu poderia usar um filtro para mapear apenas livros de ficção do meu conjunto de dados de leitura.
reads2019 read_csv("~/Downloads/Blogging A to Z/SarasReads2019_allrated.csv", col_names = TRUE)
reads2019 %>%
filter(Fiction == 1) %>%
ggplot(aes(Pages)) +
geom_histogram() +
scale_y_continuous(breaks = seq(,16,1)) +
scale_x_continuous(breaks = seq(,1200,100)) +
ylab("Frequency") +
theme_classic()
Eu também poderia usar filtros para criar um novo conjunto de dados – talvez um dos meus melhores livros que li em 2019.
top_books reads2019 %>%
filter(MyRating == 5)top_books %$%
list(Title)
## [[1]]
## [1] "1Q84"
## [2] "Alas, Babylon"
## [3] "Elevation"
## [4] "Guards! Guards! (Discworld, #8; City Watch #1)"
## [5] "How Music Works"
## [6] "Lords and Ladies (Discworld, #14; Witches #4)"
## [7] "Moving Pictures (Discworld, #10; Industrial Revolution, #1)"
## [8] "Redshirts"
## [9] "Swarm Theory"
## [10] "The Android's Dream (The Android's Dream #1)"
## [11] "The Dutch House"
## [12] "The Emerald City of Oz (Oz #6)"
## [13] "The End of Mr. Y"
## [14] "The Human Division (Old Man's War, #5)"
## [15] "The Last Colony (Old Man's War, #3)"
## [16] "The Long Utopia (The Long Earth #4)"
## [17] "The Marvelous Land of Oz (Oz, #2)"
## [18] "The Miraculous Journey of Edward Tulane"
## [19] "The Night Circus"
## [20] "The Patchwork Girl of Oz (Oz, #7)"
## [21] "The Patron Saint of Liars"
## [22] "The Wonderful Wizard of Oz (Oz, #1)"
## [23] "The Year of the Flood (MaddAddam, #2)"
## [24] "Witches Abroad (Discworld, #12; Witches #3)"
## [25] "Wyrd Sisters (Discworld, #6; Witches #2)"
Ou eu poderia criar um dos 10 livros mais longos que li:
long_books reads2019 %>%
arrange(desc(Pages)) %>%
filter(between(row_number(), 1, 10)) %>%
select(Title, Pages)library(expss)
as.etable(long_books, rownames_as_row_labels = FALSE)
Título | Páginas |
---|---|
isto | 1156 |
1T84 | 925 |
Insônia | 890 |
O Instituto | 576 |
A noiva do ladrão | 528 |
Life of Pi | 460 |
Célula | 449 |
Cujo | 432 |
A Divisão Humana (Guerra do Velho, nº 5) | 431 |
O ano do dilúvio (MaddAddam, # 2) | 431 |
Também posso filtrar por vários critérios, com operadores lógicos. Para filtrar duas coisas, eu as combinaria com &. Neste exemplo, selecionarei os livros que me levaram mais de uma semana para ler e que tinham pelo menos 400 páginas.
reads2019 %>%
filter(read_time > 7 & Pages >= 400) %>%
select(Title, Pages, Author, read_time)
## # A tibble: 2 x 4
## Title Pages Author read_time
##
## 1 The Long War (The Long Earth, #2) 419 Pratchett, Terry 8
## 2 The Robber Bride 528 Atwood, Margaret 9
Por fim, vamos filtrar com “ou”, para selecionar casos que atendem a um dos dois critérios. Criamos ou com | . O primeiro critério é o tempo de leitura menor que 1 dia (ou seja, iniciei e terminei o livro no mesmo dia). O segundo critério são meus critérios de leituras longas / livros longos de cima. Como existem duas partes desse lado do |, eu as coloco entre parênteses, para que a declaração seja avaliada em conjunto pelos dados:
reads2019 %>%
filter(read_time 1 | (read_time > 7 & Pages >= 400)) %>%
select(Title, Pages, Author, read_time)
## # A tibble: 4 x 4
## Title Pages Author read_time
##
## 1 Empath: A Complete Guide for Developing Your Gif… 104 Dyer, Judy 0
## 2 The Long War (The Long Earth, #2) 419 Pratchett, … 8
## 3 The Robber Bride 528 Atwood, Mar… 9
## 4 When We Were Orphans 320 Ishiguro, K… 0
Você pode ler mais sobre operadores lógicos e aritméticos que podem ser usados com filtro aqui.
Amanhã discutiremos a função group_by!
Relacionado
Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha seu sabor: e-mail, Twitter, RSS ou facebook …