Skip to content

Instantly share code, notes, and snippets.

@saderuuu
Created May 4, 2018 00:36
Show Gist options
  • Save saderuuu/1be0d7c2d57c18a739156403397144bf to your computer and use it in GitHub Desktop.
Save saderuuu/1be0d7c2d57c18a739156403397144bf to your computer and use it in GitHub Desktop.
install.packages("tidyverse")
install.packages("openxlsx")
install.packages("writexl")
install.packages("readxl")
install.packages("knitr")
install.packages("PNADcIBGE")
library(tidyverse)
library(openxlsx)
library(writexl)
library(readxl)
library(knitr)
library(PNADcIBGE)
# seta o working directory
caminho <- "C:\\Users\\aluno\\Desktop"
setwd(caminho)
# carrega a base
pnadc_2017 = readRDS("pnadc_2017")
# 'cara' dos dados
glimpse(pnadc_2017)
# carrega um recorte dos dados
# (somente algumas colunas)
base = pnadc_2017 %>% select(Ano,
Trimestre,
UF,
peso = "V1032",
idade = "V2009",
anos_estudo = "VD3002",
pea = "VD4001",
ocup = "VD4002",
renda_trab = "VD4020",
aluguel = "V5007A2",
apos_pens = "V5004A2",
mesada = "V5006A2",
prog_soc = "VD4047")
glimpse(base)
# filtra a base para manter somente pessoas
# com mais de 18 anos
base %>% filter(idade >= 18) %>% summary(base)
# plota um histograma da renda do país
base %>% filter(ocup == 1) %>%
ggplot(aes(x = renda_trab)) +
geom_histogram(breaks = seq(0, 10000, by=500))
# agrupa a população por estado
# soma os pesos para obter a população de cada estado
base_uf = base %>%
group_by(UF) %>%
summarise(pop = sum(peso, na.rm = TRUE) / 1000000)
# agrupa a população por estado
# encontra a renda média por estado
base_renda = base %>%
filter(ocup == 1 & idade >= 18) %>%
group_by(UF) %>%
summarise(renda_media_trab = mean(renda_trab, na.rm = TRUE))
# agrupa a população por classes de renda
base_classes = base %>%
filter(ocup == 1 & idade >= 14) %>%
mutate(classe = case_when(renda_trab < 500 ~ "E",
renda_trab >= 500 & renda_trab < 1000 ~ "D",
renda_trab >= 1000 & renda_trab < 2000 ~ "C",
renda_trab >= 2000 & renda_trab < 3000 ~ "B",
renda_trab >= 3000 ~ "A",
TRUE ~ "Outra")) %>%
group_by(classe) %>%
summarise(pop = sum(peso, na.rm = TRUE)/1000000)
# regressão linear
reg = base %>%
filter(idade >= 18 & renda_trab > 0) %>%
lm(renda_trab ~ anos_estudo, data = .)
summary(reg)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment