library(dplyr)
library(kableExtra)
library(tidyverse)
dados <- list.files(path = getwd(),
pattern = 'temp_20230610_VIGITEL_MicroDado')
df_sudeste <- data.frame()
for (i in dados) {
df <- read.csv2(paste0(getwd(),'/' ,i))
df_sudeste <- bind_rows(df_sudeste,df)
}
Analisar a variável estado conjugal(civil) e elaborar uma tabela de frequência.
tabela <- df_sudeste %>% filter(civil <888) %>%
mutate(civil= case_match(civil,
1~"solteiro",
2~"casado",
3~"estavel",
4~'viuvo',
5~'separado',
6~'nao info')) %>%
summarise( fi = n(), .by = civil) %>%
mutate(Fi=cumsum(fi),
fr = paste0(round(prop.table(fi)*100,1),'%'),
Fri = paste0(round( cumsum(prop.table(fi)*100) ,1),'%'))
tabela %>% knitr::kable() %>%
kable_classic_2( html_font = "Cambria")
| civil | fi | Fi | fr | Fri |
|---|---|---|---|---|
| solteiro | 2140 | 2140 | 26.8% | 26.8% |
| casado | 3399 | 5539 | 42.5% | 69.3% |
| viuvo | 1127 | 6666 | 14.1% | 83.4% |
| separado | 710 | 7376 | 8.9% | 92.2% |
| estavel | 621 | 7997 | 7.8% | 100% |
tabela %>%
ggplot(aes( x=civil,y=fi, fill = civil )) +
geom_col(show.legend = c( TRUE ) )+
geom_text(aes(label = fi),position = position_stack(vjust = 0.5))
casos_diabetes <- df_sudeste %>% select(civil, diabetes = q76) %>%
filter(civil < 6, diabetes <3) %>%
mutate(civil = case_when(
civil == "1" ~ "solteiro",
civil == "2" ~ "casado ",
civil == "3" ~ "estavel",
civil == "4" ~ "viuvo",
civil == "5" ~ "separado"),
diabetes = case_when(
diabetes == "1" ~ "negativo",
diabetes == "2" ~ "positivo") ) %>%
summarise( total = n() , .by = c(civil , diabetes) )
casos_diabetes %>% arrange(desc(civil))
## civil diabetes total
## 1 viuvo negativo 250
## 2 viuvo positivo 876
## 3 solteiro positivo 2013
## 4 solteiro negativo 127
## 5 separado positivo 622
## 6 separado negativo 88
## 7 estavel positivo 559
## 8 estavel negativo 61
## 9 casado positivo 2903
## 10 casado negativo 493
casos_diabetes |> ggplot(aes(x=civil, y=total, fill = diabetes ))+
geom_col(position = 'dodge') +
scale_fill_manual( values = c("tan3","steelblue1"))
Organizar e transformar os dados procurando por outliers e valores não registrados.
Os valores ausentes nesse conjuto de dados é representado pelo valor 777.
tabela_transformada <- df_sudeste |>
#Seleção das principais variáveis
select(civil, peso =q9, diabetes = q76) |>
#remover os valores ausentes
filter(peso < 777, diabetes < 777) |>
mutate(civil = case_when(
civil == "1" ~ "solteiro",
civil == "2" ~ "casado ",
civil == "3" ~ "estavel",
civil == "4" ~ "viuvo",
civil == "5" ~ "separado"),
diabetes = case_when(
diabetes == "1" ~ "negativo",
diabetes == "2" ~ "positivo") )
tabela_transformada |> head()
## civil peso diabetes
## 1 solteiro 54 positivo
## 2 solteiro 96 positivo
## 3 casado 73 positivo
## 4 viuvo 76 negativo
## 5 separado 98 positivo
## 6 casado 75 positivo
tabela_transformada %>%
summary()
## civil peso diabetes
## Length:7723 Min. : 32.00 Length:7723
## Class :character 1st Qu.: 61.00 Class :character
## Mode :character Median : 70.00 Mode :character
## Mean : 71.84
## 3rd Qu.: 80.00
## Max. :210.00
df_sudeste %>% summarise( desvio_padrão = sd(q9))
## desvio_padrão
## 1 150.8586
plot(density( pull(select(df_sudeste, peso = q9) %>%
filter(peso <300))),
main = "Gráfico de Densidade")
qqnorm( scale(tabela_transformada$peso))
qqline(tabela_transformada$peso)