# Criando o data frame com os dados fornecidos
dados <- data.frame(
Funcionario = 1:36,
Est.civil = c("solteiro", "casado", "casado", "solteiro", "solteiro", "casado",
"solteiro", "solteiro", "casado", "solteiro", "casado", "solteiro",
"solteiro", "casado", "casado", "solteiro", "casado", "casado",
"solteiro", "solteiro", "casado", "solteiro", "solteiro", "casado",
"casado", "casado", "solteiro", "casado", "casado", "casado",
"solteiro", "casado", "casado", "solteiro", "casado", "casado"),
Inst = c("1o Grau", "1o Grau", "1o Grau", "2o Grau", "1o Grau", "1o Grau",
"1o Grau", "1o Grau", "2o Grau", "2o Grau", "2o Grau", "1o Grau",
"2o Grau", "1o Grau", "2o Grau", "2o Grau", "2o Grau", "1o Grau",
"Superior", "2o Grau", "2o Grau", "2o Grau", "1o Grau", "Superior",
"2o Grau", "2o Grau", "1o Grau", "2o Grau", "2o Grau", "2o Grau",
"Superior", "2o Grau", "Superior", "Superior", "2o Grau", "Superior"),
Filhos = c(NA, 1, 2, NA, NA, 0, NA, NA, 1, NA, 2, NA, NA, 3, 0, NA, 1, 2,
NA, NA, 1, NA, NA, 0, 2, 2, NA, 0, 5, 2, NA, 1, 3, NA, 2, 3),
Salario = c(4, 4.56, 5.25, 5.73, 6.26, 6.66, 6.86, 7.39, 7.59, 7.44, 8.12,
8.46, 8.74, 8.95, 9.13, 9.35, 9.77, 9.8, 10.53, 10.76, 11.06,
11.59, 12, 12.79, 13.23, 13.6, 13.85, 14.69, 14.71, 15.99,
16.22, 16.61, 17.26, 18.75, 19.4, 23.3),
Anos = c(26, 32, 36, 20, 40, 28, 41, 43, 34, 23, 33, 27, 37, 44, 30, 38,
31, 39, 25, 37, 30, 34, 41, 26, 32, 35, 46, 29, 40, 35, 31, 36,
43, 33, 48, 42),
Meses = c(3, 10, 5, 10, 7, 0, 0, 4, 10, 6, 6, 11, 5, 2, 5, 8, 7, 7, 8, 4,
9, 2, 0, 1, 5, 0, 7, 8, 6, 10, 5, 4, 7, 7, 11, 2),
Regiao = c("interior", "capital", "capital", "outro", "outro", "interior",
"interior", "capital", "capital", "outro", "interior", "capital",
"outro", "outro", "interior", "outro", "capital", "outro",
"interior", "interior", "outro", "capital", "outro", "outro",
"interior", "outro", "outro", "interior", "interior", "capital",
"outro", "interior", "capital", "capital", "capital", "interior")
)
# Tabelas de frequência
freq_abs_est <- table(dados$Est.civil)
freq_rel_est <- round(prop.table(freq_abs_est)*100, 2)
# Exibir tabelas formatadas
kable(data.frame(
"Estado Civil" = names(freq_abs_est),
"Frequência Absoluta" = as.numeric(freq_abs_est),
"Frequência Relativa (%)" = as.numeric(freq_rel_est)),
caption = "Distribuição por Estado Civil") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)
| Estado.Civil | Frequência.Absoluta | Frequência.Relativa…. |
|---|---|---|
| casado | 20 | 55.56 |
| solteiro | 16 | 44.44 |
# Gráficos
barplot(freq_abs_est, main="Frequência Absoluta - Estado Civil",
ylab="Frequência", col=c("lightblue", "pink"))
pie(freq_abs_est, main="Distribuição - Estado Civil",
col=c("lightblue", "pink"))
# Tabelas de frequência
freq_abs_inst <- table(dados$Inst)
freq_rel_inst <- round(prop.table(freq_abs_inst)*100, 2)
# Exibir tabela formatada
kable(data.frame(
"Grau de Instrução" = names(freq_abs_inst),
"Frequência Absoluta" = as.numeric(freq_abs_inst),
"Frequência Relativa (%)" = as.numeric(freq_rel_inst)),
caption = "Distribuição por Grau de Instrução") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)
| Grau.de.Instrução | Frequência.Absoluta | Frequência.Relativa…. |
|---|---|---|
| 1o Grau | 12 | 33.33 |
| 2o Grau | 18 | 50.00 |
| Superior | 6 | 16.67 |
# Gráficos
barplot(freq_abs_inst, main="Frequência Absoluta - Instrução",
ylab="Frequência", col=rainbow(3))
pie(freq_abs_inst, main="Distribuição - Instrução", col=rainbow(3))
# Tabelas de frequência (considerando apenas valores não-NA)
filhos_sem_na <- dados$Filhos[!is.na(dados$Filhos)]
freq_abs_filhos <- table(filhos_sem_na)
freq_rel_filhos <- round(prop.table(freq_abs_filhos)*100, 2)
freq_acum_filhos <- cumsum(freq_rel_filhos)
# Exibir tabela formatada
kable(data.frame(
"Número de Filhos" = names(freq_abs_filhos),
"Frequência Absoluta" = as.numeric(freq_abs_filhos),
"Frequência Relativa (%)" = as.numeric(freq_rel_filhos),
"Frequência Acumulada (%)" = as.numeric(freq_acum_filhos)),
caption = "Distribuição do Número de Filhos") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)
| Número.de.Filhos | Frequência.Absoluta | Frequência.Relativa…. | Frequência.Acumulada…. |
|---|---|---|---|
| 0 | 4 | 20 | 20 |
| 1 | 5 | 25 | 45 |
| 2 | 7 | 35 | 80 |
| 3 | 3 | 15 | 95 |
| 5 | 1 | 5 | 100 |
# Gráficos
barplot(freq_rel_filhos, main="Frequência Relativa - Filhos",
ylab="Proporção (%)", col="lightgreen")
plot(freq_acum_filhos, type="b", main="Frequência Relativa Acumulada - Filhos",
ylab="Proporção Acumulada (%)", xlab="Número de Filhos", col="blue")
# Valores máximo, mínimo e número de classes (usando regra de Sturges)
max_salary <- max(dados$Salario)
min_salary <- min(dados$Salario)
n_classes <- ceiling(1 + 3.322 * log10(length(dados$Salario)))
# Exibir informações
kable(data.frame(
"Mínimo" = min_salary,
"Máximo" = max_salary,
"Número de Classes" = n_classes),
caption = "Estatísticas Básicas do Salário") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)
| Mínimo | Máximo | Número.de.Classes |
|---|---|---|
| 4 | 23.3 | 7 |
# Histograma
hist(dados$Salario, breaks=n_classes, main="Histograma - Salário",
xlab="Salário", ylab="Frequência", col="orange")
# Tabela de contingência
tab_cont <- table(dados$Est.civil, dados$Inst)
# Exibir tabela formatada
kable(tab_cont, caption = "Tabela de Contingência: Estado Civil x Grau de Instrução") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE) %>%
add_header_above(c(" " = 1, "Grau de Instrução" = 3))
| 1o Grau | 2o Grau | Superior | |
|---|---|---|---|
| casado | 5 | 12 | 3 |
| solteiro | 7 | 6 | 3 |
# Gráficos de barras
barplot(tab_cont, beside=TRUE, legend=TRUE, main="Barras Lado a Lado",
col=c("lightblue", "pink"), args.legend=list(x="topright"))
barplot(tab_cont, legend=TRUE, main="Barras Sobrepostas",
col=c("lightblue", "pink"), args.legend=list(x="topright"))
# Box-plot
boxplot(Salario ~ Inst, data=dados, main="Boxplot Salário por Instrução",
xlab="Grau de Instrução", ylab="Salário", col=rainbow(3))
# Média e desvio padrão
media_salario <- tapply(dados$Salario, dados$Inst, mean)
dp_salario <- tapply(dados$Salario, dados$Inst, sd)
# Exibir tabela formatada
kable(data.frame(
"Grau de Instrução" = names(media_salario),
"Média Salarial" = round(media_salario, 2),
"Desvio Padrão" = round(dp_salario, 2)),
caption = "Estatísticas Salariais por Grau de Instrução") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)
| Grau.de.Instrução | Média.Salarial | Desvio.Padrão | |
|---|---|---|---|
| 1o Grau | 1o Grau | 7.84 | 2.96 |
| 2o Grau | 2o Grau | 11.53 | 3.72 |
| Superior | Superior | 16.48 | 4.50 |
dados$Idade <- dados$Anos + dados$Meses/12
# Gráfico de dispersão
plot(dados$Idade, dados$Salario, main="Salário vs Idade",
xlab="Idade (anos)", ylab="Salário", pch=19, col="darkblue")
# Correlação
correlacao <- cor(dados$Salario, dados$Idade)
# Exibir correlação
kable(data.frame(
"Correlação entre Salário e Idade" = round(correlacao, 4)),
caption = "Medida de Correlação") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)
| Correlação.entre.Salário.e.Idade |
|---|
| 0.3651 |
# Funções estatísticas
media <- mean(dados$Salario)
variancia <- var(dados$Salario)
desvio <- sd(dados$Salario)
mediana <- median(dados$Salario)
quantis <- quantile(dados$Salario, probs=c(0.25, 0.5, 0.75))
# Exibir estatísticas formatadas
kable(data.frame(
"Média" = round(media, 2),
"Variância" = round(variancia, 2),
"Desvio Padrão" = round(desvio, 2),
"Mediana" = round(mediana, 2),
"1º Quartil" = round(quantis[1], 2),
"3º Quartil" = round(quantis[3], 2)),
caption = "Estatísticas Descritivas do Salário") %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)
| Média | Variância | Desvio.Padrão | Mediana | X1º.Quartil | X3º.Quartil | |
|---|---|---|---|---|---|---|
| 25% | 11.12 | 21.04 | 4.59 | 10.16 | 7.55 | 14.06 |