generated from curso-r/template-pagina-do-curso
-
Notifications
You must be signed in to change notification settings - Fork 1
/
contagens.R
151 lines (110 loc) · 3.36 KB
/
contagens.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# Dados -------------------------------------------------------------------
dados_rolagens <- readRDS("dados/experimento_dado.rds")
# Fazendo contagens -------------------------------------------------------
X <- dados_rolagens$resultado
table(X)
# é o jeito de contar do R básico
contagens <- dados_rolagens |>
count(resultado)
# esse é o jeito do tidyverse
# Fazer o gráfico ---------------------------------------------------------
# Jeito 1
contagens |>
ggplot(aes(x = resultado, y = n)) +
geom_col(fill = "royalblue") +
theme_bw() +
labs(x = "Resultado do dado", y = "Frequência do resultado")
# esse é o jeito com ggplot que é bom porque é flexível
# Jeito 2
dados_rolagens |>
ggplot(aes(x = resultado)) +
geom_bar(fill = "royalblue") +
theme_bw() +
labs(x = "Resultado do dado", y = "Frequência do resultado")
# dados de temperatura ----------------------------------------------------
dados_temperatura <- readRDS("dados/chuvas_A701.rds")
dados_temperatura |>
ggplot(aes(x = `Tair_mean (c)`)) +
geom_bar() +
theme_bw()
dados_temperatura |>
count(`Tair_mean (c)`)
# Como fazer histogramas em R ---------------------------------------------
# Jeito 1: ggplot2
min(dados_temperatura$`Tair_mean (c)`)
max(dados_temperatura$`Tair_mean (c)`)
(25.15-16.75833)/5
dados_temperatura |>
ggplot(aes(x = `Tair_mean (c)`)) +
geom_histogram(
bins = 5
)
# quebra as faixas uniformemente entre o minimo e maximo
dados_temperatura |>
ggplot(aes(x = `Tair_mean (c)`)) +
geom_histogram(
fill = "royalblue",
color = "white",
binwidth = 1,
center = 0.5
) +
scale_x_continuous(
breaks = seq(16, 26),
minor_breaks = 1) +
theme_bw()
# quebra as faixas de acordo com a interpretação da faixa
# Jeito 2: R básico
hist(dados_temperatura$`Tair_mean (c)`, breaks = "Sturges")
# o R básico mistura uma fórmula pro numero de quebras
# com um número "bonitinho"
nclass.Sturges
ceiling(log2(31)+1)
### existem outros jeitos de criar faixas?
hist(dados_temperatura$`Tair_mean (c)`, breaks = "FD")
# Comparação com histogramas ----------------------------------------------
dados_peso <- readRDS("dados/dados_pesos.rds")
hist(dados_peso$wt)
dados_peso |>
ggplot(aes(x = wt)) +
geom_histogram()
# começou feio
dados_peso |>
ggplot(aes(x = wt)) +
geom_histogram(
binwidth = 5, center = 2.5, fill = 'royalblue', color = 'white'
)
dados_peso |>
ggplot(aes(x = wt, fill = genero)) +
geom_histogram(
binwidth = 5, center = 2.5, color = 'white'
)
dados_peso |> count(genero)
dados_peso |>
ggplot(aes(x = wt, fill = genero)) +
geom_histogram(
binwidth = 5, center = 2.5, color = 'white', position = 'dodge'
)
# criando nosso proprio grafico de contagens para histograma --------------
dados_peso |>
mutate(
faixa_peso = cut(wt, seq(0, 100, 5))
) |>
count(genero, faixa_peso) |>
group_by(genero) |>
mutate(
p = n/sum(n)
) |>
ggplot(aes(x = faixa_peso, y = p, fill = genero)) +
geom_col(position = 'dodge') +
scale_y_continuous(labels = scales::percent) +
theme_minimal()
# fazendo na mão
# Histogramas de variaveis qualitativas? ----------------------------------
dados_peso |>
mutate(
genero = factor(genero, c("Mulher", "Homem"))
) |>
ggplot(aes(x = genero)) +
geom_bar()
# sim! mas o R precisa ou receber ou criar uma ordem
# entre os valores para conseguir plotar no X