S é para resumir | R-bloggers

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[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.

Hoje, finalmente falaremos sobre resumir! É muito semelhante à mutação, mas, em vez de adicionar ou alterar uma variável em um conjunto de dados, agrega seus dados, criando uma nova tagarelice com as colunas que contêm os dados de resumo solicitados. O número de linhas será igual ao número de grupos de group_by (se você não especificar nenhum grupo, sua tagarelice terá uma linha que resume todo o conjunto de dados).

Hoje em dia, quando quero estatísticas descritivas de um conjunto de dados, geralmente uso o resumo, porque posso especificar as estatísticas exatas que eu quero na ordem exata que eu quero (para colar facilmente as tabelas em um relatório ou apresentação).

Além disso, se você não é um fã da ortografia do Reino Unido, resuma as obras exatamente da mesma maneira. O mesmo vale para outras funções R / arrumado, como cor versus cor.

Vamos carregar o conjunto de dados read2019 e começar a resumir!

## -- Attaching packages ------------------------------------------- tidyverse 1.3.0 --
##  ggplot2 3.2.1      purrr   0.3.3
## tibble 2.1.3 dplyr 0.8.3
## tidyr 1.0.0 stringr 1.4.0
## readr 1.3.1 forcats 0.4.0
## -- Conflicts ---------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
reads2019  read_csv("~/Downloads/Blogging A to Z/SaraReads2019_allrated.csv",
col_names = TRUE)
## Parsed with column specification:
## cols(
## Title = col_character(),
## Pages = col_double(),
## date_started = col_character(),
## date_read = col_character(),
## Book.ID = col_double(),
## Author = col_character(),
## AdditionalAuthors = col_character(),
## AverageRating = col_double(),
## OriginalPublicationYear = col_double(),
## read_time = col_double(),
## MyRating = col_double(),
## Gender = col_double(),
## Fiction = col_double(),
## Childrens = col_double(),
## Fantasy = col_double(),
## SciFi = col_double(),
## Mystery = col_double(),
## SelfHelp = col_double()
## )

Primeiro, poderíamos usar o resumo para nos fornecer algumas descrições básicas de todo o conjunto de dados. Se quisermos salvar os resultados em um petisco, atribuiremos a ele um novo nome, ou podemos apenas exibir esses resultados e não salvá-los. Eis o que acontece quando solicito um resumo sem salvar uma nova tagarelice.

reads2019 %>%
summarise(AllPages = sum(Pages),
AvgLength = mean(Pages),
AvgRating = mean(MyRating),
AvgReadTime = mean(read_time),
ShortRT = min(read_time),
LongRT = max(read_time),
TotalAuthors = n_distinct(Author))
## # A tibble: 1 x 7
## AllPages AvgLength AvgRating AvgReadTime ShortRT LongRT TotalAuthors
##
## 1 29696 341. 4.14 3.92 0 25 42

Agora, vamos criar um resumo em que o salvamos como um petisco. E vamos criar alguns grupos para nós. No conjunto de dados, codifiquei sexo do autor, com autores femininos codificados como 1, para que eu possa descobrir quantas mulheres escritoras estão representadas em um grupo, somando essa variável. Também quero preencher algumas datas de publicação ausentes, o que parece acontecer na versão Kindle de livros ou livros de pequenos editores. Isso permitirá que eu descubra meus livros mais novos e mais antigos em cada grupo; Apenas organizo por ano de publicação e solicito o último e o primeiro, respectivamente. Dois livros foram publicados em 2019, então eu substituirei os outros com base no título e depois R deu às NAs restantes um ano de 2019.

reads2019 %>%
filter(is.na(OriginalPublicationYear)) %>%
select(Title)
## # A tibble: 5 x 1
## Title
##
## 1 Empath: A Complete Guide for Developing Your Gift and Finding Your Sense of S…
## 2 Perilous Pottery (Cozy Corgi Mysteries, #11)
## 3 Precarious Pasta (Cozy Corgi Mysteries, #14)
## 4 Summerdale
## 5 Swarm Theory
reads2019  reads2019 %>%
mutate(OriginalPublicationYear = replace(OriginalPublicationYear,
Title == "Empath: A Complete Guide for Developing Your Gift and Finding Your Sense of Self", 2017),
OriginalPublicationYear = replace(OriginalPublicationYear,
Title == "Summerdale", 2018),
OriginalPublicationYear = replace(OriginalPublicationYear,
Title == "Swarm Theory", 2016),
OriginalPublicationYear = replace_na(OriginalPublicationYear, 2019))

genrestats reads2019 %>%
filter(Fiction == 1) %>%
arrange(OriginalPublicationYear) %>%
group_by(Childrens, Fantasy, SciFi, Mystery) %>%
summarise(Books = n(),
WomenAuthors = sum(Gender),
AvgLength = mean(Pages),
AvgRating = mean(MyRating),
NewestBook = last(OriginalPublicationYear),
OldestBook = first(OriginalPublicationYear))

Agora vamos transformar esse resumo em uma tabela melhor e rotulada.

Leia Também  eRum 2020: apresentações da Appsilon no xspliner, fast.ai e redigindo código R pronto para produção
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
genrestats  genrestats %>%
bind_cols(Genre = c("General Fiction",
"Mystery",
"Science Fiction",
"Fantasy",
"Fantasy SciFi",
"Children's Fiction",
"Children's Fantasy")) %>%
ungroup() %>%
select(Genre, everything(), -Childrens, -Fantasy, -SciFi, -Mystery)

library(expss)

## 
## Attaching package: 'expss'
## The following objects are masked from 'package:stringr':
##
## fixed, regex
## The following objects are masked from 'package:dplyr':
##
## between, compute, contains, first, last, na_if, recode, vars
## The following objects are masked from 'package:purrr':
##
## keep, modify, modify_if, transpose
## The following objects are masked from 'package:tidyr':
##
## contains, nest
## The following object is masked from 'package:ggplot2':
##
## vars
as.etable(genrestats, rownames_as_row_labels = NULL)
Gênero Livros Mulheres Comprimento AVG AvgRating NewestBook Livro mais antigo
Ficção geral 15 10 320,1 4.1 2019 1941
Mistério 9 8 316,3 3.8 2019 1950
Ficção científica 19 4 361,4 4.4. 2019 1959
Fantasia 19 3 426,3 4.2 2019 1981
Fantasia SciFi 2 0 0 687,0 4.5 2009 2006
Ficção infantil 1 0 0 181,0 4.0 2016 2016
Fantasia infantil 16 1 250,6 4.2 2008 1900

Eu poderia ter usado outras funções R básicas também no meu resumo – como sd, mediana, min, max e assim por diante. Você também pode resumir um conjunto de dados e criar uma plotagem desse resumo no mesmo código.

## Warning: package 'ggthemes' was built under R version 3.6.3
reads2019 %>%
mutate(Gender = factor(Gender, levels = c(,1),
labels = c("Male",
"Female")),
Fiction = factor(Fiction, levels = c(,1),
labels = c("Non-Fiction",
"Fiction"),
ordered = TRUE)) %>%
group_by(Gender, Fiction) %>%
summarise(Books = n()) %>%
ggplot(aes(Fiction, Books)) +
geom_col(aes(fill = reorder(Gender, desc(Gender)))) +
scale_fill_economist() +
xlab("Genre") +
labs(fill = "Author Gender")
Leia Também  Uma atualização para "Uma aventura no download de livros"



Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha o seu sabor: o email, Twitter, RSS ou facebook …



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br