Inicialização em estudos socieconômicos em linguagem R
1. Primeiros passos
# Carrega o dataset iris
data(iris)
# informações sobre o dataset
?iris
help(iris)
# Atribuindo o dataset a uma variavel
meu_iris <- iris
# Salvando o dataset em um objeto RDS do R
saveRDS(meu_iris, file = 'meu_iris.rds')## [1] "iris" "meu_iris" "meu_iris_recuperado"
## [1] "/cloud/project"
## [1] "iris" "meu_iris" "meu_iris_recuperado"
## [4] "meu_objeto"
## [1] "iris" "meu_iris" "meu_iris_recuperado"
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
1.1 Tipos de dados em R
idade <- 42
pi <- 3.14
nome <- 'Janderson'
cidade <- 'brasilia'
genero <- factor(c('Masculino','Feminino','Masculino','Feminino'))
genero## [1] Masculino Feminino Masculino Feminino
## Levels: Feminino Masculino
setores <- factor(c('Chocolate','Lacticinios','Perfumaria','Frios','Lacticinios'
,'','Frios','Perfumaria','Frios','Cafeteria'))
setores## [1] Chocolate Lacticinios Perfumaria Frios Lacticinios
## [7] Frios Perfumaria Frios Cafeteria
## Levels: Cafeteria Chocolate Frios Lacticinios Perfumaria
## [1] 80 35 77 27 41
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
dados <- data.frame(Nome = c("Ana", "Carlos","Fabricio"),
Idade = c(22,18,19),
Nota = c(5,10,9.5),
situação = c('Reprovado','Aprovado','Aprovado')
)
dados## Nome Idade Nota situação
## 1 Ana 22 5.0 Reprovado
## 2 Carlos 18 10.0 Aprovado
## 3 Fabricio 19 9.5 Aprovado
1.2 Operadores aritméticos e logicos
## [1] 8
## [1] 6
## [1] 40
## [1] 2
## [1] 8
## [1] 1
## [1] TRUE
## [1] FALSE
## [1] TRUE
## [1] FALSE
## [1] TRUE
## [1] FALSE
condicao_1 <- TRUE
condicao_2 <- FALSE
condicao_a <- TRUE
condicao_b <- FALSE
# Verifica se apenas a primeira condição e falsa
resultado_1 <- condicao_1 && condicao_2
resultado_1## [1] FALSE
## [1] FALSE
## [1] TRUE
# Verifica se apenas a primeira condição e verdadeira
resultado_4 <- condicao_1 || condicao_b
resultado_4## [1] TRUE
## [1] TRUE
## [1] FALSE
numeros <- c(7,9,10,15,17,20)
# Verificando quais numeros nao sao maiores que 15
nao_maiores_que_15 <- numeros <= 15
nao_maiores_que_15## [1] TRUE TRUE TRUE TRUE FALSE FALSE
1.3 Funções aritiméticas e matemáticas
## [1] 41
## [1] 5.125
## [1] 8
## [1] 1 2 3 5 5 8 8 9
## [1] 2 5 8 3 1 9
## [1] 5
## [1] 3.218876
## [1] 25
1.4 Funçoes de estudo em fisica, engenharia e geometria
## [1] -0.1323518
## [1] 0.9912028
## [1] -0.1335264
## Warning in asin(numero): NaNs produced
## [1] NaN
## Warning in acos(numero): NaNs produced
## [1] NaN
## [1] 1.530818
## [1] 1.373401
## [1] 36002449669
## [1] 36002449669
## [1] 1
2. Estudo e pratica
2.1 Simulação de estudo sobre o mercado de trabalho
criando o dataset
dados_trabalho <- data.frame(
Nome <- c('Ana','Carlos','Mariana','Pedro','Julia'),
Idade <- c(28,35,30,25,32),
Salario <- c(5000,6000,5500,4800,7000),
Cargo <- c('Analista','Gerente','Analista','Assitente','Diretor'),
Experiencia_anos <- c(3,8,5,2,10)
)## [1] 5660
## [1] 5
## [1] 25 28 30 32 35
## [1] Analista Gerente Analista Assitente Diretor
## Levels: Analista Assitente Diretor Gerente
## [1] 7000
## [1] 28300
# tempo de experiencia acima de 5 anos
tempo_acima_5_anos <- dados_trabalho$Experiencia_anos > 5
tempo_acima_5_anos## [1] FALSE TRUE FALSE FALSE TRUE
3. Estruturas de controle
# Limpando o ambiente
rm(list = ls())
idade <- 18
if (idade >= 18) {
cat('Você e maior de idade.\n')
} else {
cat('Você e menor de idade.\n')
}## Você e maior de idade.
3.1 Estrutura Condicional if-else if-else
idade <- 25
if (idade < 18) {
cat('Você e maior de idade.\n')
} else if (idade >= 18 & idade <= 60){
cat('Você e um adulto.\n')
} else {
cat('Você e um idoso.\n')
}## Você e um adulto.
3.2 Estrutura de repetição for
## Iteração: 1
## Iteração: 2
## Iteração: 3
## Iteração: 4
## Iteração: 5
3.3 Estrutura de repetição while
contador <- 2
while(contador <= 5){
cat('Iteração: ',contador,'\n')
contador <- contador + 1
cat('Iteração: ',contador,'\n')
}## Iteração: 2
## Iteração: 3
## Iteração: 3
## Iteração: 4
## Iteração: 4
## Iteração: 5
## Iteração: 5
## Iteração: 6
3.3 Estrutura de repetição repeat
# util quando não se sabe o numero de vezes a iterar
contador <- 1
repeat{
cat('Iteração: ',contador,'\n')
contador <- contador +1
if(contador > 4){
break
}}## Iteração: 1
## Iteração: 2
## Iteração: 3
## Iteração: 4
3.4 Estrutura de controle switch
dia_da_semana <- 'sexta'
mensagem <- switch(dia_da_semana,
'segunda' = 'Inicio da semana',
'terça' = 'Dia de reuniões',
'quarta' = 'Metade da semana',
'quinta' = 'Proximo do fim de semana',
'sexta' = 'Sextou!',
'sabado' = 'Dia de descanso',
'domingo' = 'Semana se inicia'
)
cat('Mensagem: ',mensagem, '\n')## Mensagem: Sextou!
3.3 Estrutura de repetição foreach
library(foreach)
vetor_numerico <- c(2,4,6,8,10)
foreach(valor = vetor_numerico)%do%{
cat('Valor: ',valor, '\n')
}## Valor: 2
## Valor: 4
## Valor: 6
## Valor: 8
## Valor: 10
## [[1]]
## NULL
##
## [[2]]
## NULL
##
## [[3]]
## NULL
##
## [[4]]
## NULL
##
## [[5]]
## NULL
4. Funçoes de análise estatística
4.1 Gerando os dados
# limpando o ambiente
rm(list=ls())
# Criando o dataset ficticio
dados <- data.frame(
Idade = c(25,30,35,40,45,50,55,60),
Salario = c(5000,6000,5500,7000,8000,7500,9000,9500),
Educação = c('Ensino medio','Ensino superior','Ensino medio','Ensino superior'
,'Ensino medio','Ensino superior',
'Ensino medio','Ensino superior'),
Emprego = c('CLT','Autônomo','CLT','Autônomo','CLT',
'Autônomo','CLT','Autônomo')
)4.4 Moda
## 5000
## 1
4.7 Calcular quartis de 25%,50% e 75% em Idade
## 25% 50% 75%
## 33.75 42.50 51.25
4.8 Valor t-Student
##
## Welch Two Sample t-test
##
## data: dados$Salario by dados$Educação
## t = -0.5148, df = 5.6062, p-value = 0.6263
## alternative hypothesis: true difference in means between group Ensino medio and group Ensino superior is not equal to 0
## 95 percent confidence interval:
## -3647.032 2397.032
## sample estimates:
## mean in group Ensino medio mean in group Ensino superior
## 6875 7500
4.9 Teste Qui-Quadrado
tabela_contigencia <- table(dados$Educação,dados$Emprego)
qui_quadrado_educacao <- chisq.test(tabela_contigencia)## Warning in chisq.test(tabela_contigencia): Chi-squared approximation may be
## incorrect
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: tabela_contigencia
## X-squared = 4.5, df = 1, p-value = 0.03389
4.11 Calculo de covariancia
## [1] 19107.14
5. Função de manipulação de strings
5.1 Metodo paste
nome <- 'Janderson'
sobrenome <- 'Batista'
nome_completo <- paste(nome, sobrenome, sep = ' ')
nome_completo## [1] "Janderson Batista"
5.2 Metodo substring
## [1] "manipulação"
5.3 Metodo grep
## [1] 3
5.4 Metodo toupper e tolower
texto <- "exemplo de TEXTO"
texto_maiusculo <- toupper(texto)
texto_minusculo <- tolower(texto)
texto_maiusculo## [1] "EXEMPLO DE TEXTO"
## [1] "exemplo de texto"
5.5 Metodo strsplit
frase = 'Manipulação de|Strings|no R'
substrings <- strsplit(frase, split = '|', fixed = TRUE)
substrings## [[1]]
## [1] "Manipulação de" "Strings" "no R"
5.6 Metodo gsub
frase <- 'Eu gosto de configurar o tema do rmarkdown para Material'
texto_substituido <- gsub('Material','Robobook', frase)
texto_substituido## [1] "Eu gosto de configurar o tema do rmarkdown para Robobook"
5.7 Metodo nchar
palavra <- 'RStudio'
comprimento <- nchar(palavra)
cat('A palavra RStudio tem:',comprimento,' letras\n')## A palavra RStudio tem: 7 letras
5.8 Metodo str_trim
## [1] "Espaços removidos"
5.9 Metodo separate
library(tidyr)
dados <- data.frame(
nome_completo = c('João Silva','Janderson Batista','Maria Dulce',
'Carlos Oliveira'))
dados_arrumados <- separate(dados, col = nome_completo,
into = c('Nome','Sobrenome'), sep = '')## Warning: Expected 2 pieces. Additional pieces discarded in 4 rows [1, 2, 3, 4].
## Nome Sobrenome
## 1 J
## 2 J
## 3 M
## 4 C
5.10 Criando um dataset
dados_educacionais <- data.frame(
Escola = c('Escola A','Escola B','Escola C'),
Nome_responsavel = c('João','Maria','Carlos'),
Sobrenome_responsavel = c('Silva','Santos','Oliveira'),
Estado = c('mg-Minas Gerais','rj-Rio De Janeiro','mg-Minas Gerais')
)
dados_educacionais## Escola Nome_responsavel Sobrenome_responsavel Estado
## 1 Escola A João Silva mg-Minas Gerais
## 2 Escola B Maria Santos rj-Rio De Janeiro
## 3 Escola C Carlos Oliveira mg-Minas Gerais
# Cria uma nova coluna com o nome completo do responsavel
dados_educacionais$nome_completo_responsavel <-
paste(dados_educacionais$Nome_responsavel,
dados_educacionais$Sobrenome_responsavel, sep = ' ')
dados_educacionais## Escola Nome_responsavel Sobrenome_responsavel Estado
## 1 Escola A João Silva mg-Minas Gerais
## 2 Escola B Maria Santos rj-Rio De Janeiro
## 3 Escola C Carlos Oliveira mg-Minas Gerais
## nome_completo_responsavel
## 1 João Silva
## 2 Maria Santos
## 3 Carlos Oliveira
# Utilizando Substring par extrair o estado da escola
dados_educacionais$Estado_abreviado <- substring(dados_educacionais$Estado,
first=1, last=2)
dados_educacionais## Escola Nome_responsavel Sobrenome_responsavel Estado
## 1 Escola A João Silva mg-Minas Gerais
## 2 Escola B Maria Santos rj-Rio De Janeiro
## 3 Escola C Carlos Oliveira mg-Minas Gerais
## nome_completo_responsavel Estado_abreviado
## 1 João Silva mg
## 2 Maria Santos rj
## 3 Carlos Oliveira mg
# Transformar coluna estado abreviado em maiusculas
dados_educacionais$Estado_abreviado <- toupper(
dados_educacionais$Estado_abreviado)
dados_educacionais## Escola Nome_responsavel Sobrenome_responsavel Estado
## 1 Escola A João Silva mg-Minas Gerais
## 2 Escola B Maria Santos rj-Rio De Janeiro
## 3 Escola C Carlos Oliveira mg-Minas Gerais
## nome_completo_responsavel Estado_abreviado
## 1 João Silva MG
## 2 Maria Santos RJ
## 3 Carlos Oliveira MG