Variable cualitativa nominal
País
Importamos el archivo “Pais.csv” desde una ruta local y lo almacena en el objeto Pais, usando espacios o tabulaciones como separador. Luego, la función str(Pais) muestra la estructura del data frame, indicando tipos de datos y ejemplos de sus columnas.
## 'data.frame': 17805 obs. of 1 variable:
## $ Pais: chr " China" " Pakistan" " Indonesia" " India" ...
Calculamos de frecuencia absoluta (ni) y relativa (hi).
pais <- Pais$Pais
TDFpais <- table(pais)
TDFfinalpais <- as.data.frame(TDFpais)
colnames(TDFfinalpais) <- c("variable", "ni")
hi <- TDFfinalpais$ni / sum(TDFfinalpais$ni)
hi <- round(hi*100)
sum(hi)## [1] 100
## [1] 17805
Ese código reconstruye el data frame TDFfinalpais con las columnas variable, ni y hi ya calculadas, y luego lo muestra. Sirve para visualizar la tabla completa de frecuencias simples y relativas.
variable <- TDFfinalpais$variable
ni <- TDFfinalpais$ni
hi <- round(ni / sum(ni) * 100)
TDFfinalpais <- data.frame(variable, ni, hi)
TDFfinalpais## Warning: package 'gt' was built under R version 4.4.3
# Crear la tabla
tabla_pais<-TDFfinalpais %>%
gt() %>%
tab_header(
title = md("Tabla Nro. 2"),
subtitle = md("Tabla de distribución de Frecuencias simples y acumuladas
de Paises")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 1")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
table.border.top.style = "solid",
table.border.bottom.style = "solid",
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black"
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(
rows = variable == "Total"
)
)
tabla_pais| Tabla Nro. 2 | ||
| Tabla de distribución de Frecuencias simples y acumuladas de Paises | ||
| variable | ni | hi |
|---|---|---|
| Afghanistan | 276 | 2 |
| Bangladesh | 75 | 0 |
| Bhutan | 46 | 0 |
| China | 1401 | 8 |
| India | 3946 | 22 |
| India region | 1058 | 6 |
| Indonesia | 5434 | 31 |
| Iran | 47 | 0 |
| Laos | 11 | 0 |
| Malaysia | 1 | 0 |
| Maldives | 4 | 0 |
| Myanmar | 1188 | 7 |
| Nepal | 784 | 4 |
| Oman | 11 | 0 |
| Pakistan | 1745 | 10 |
| Sri Lanka | 2 | 0 |
| Thailand | 50 | 0 |
| N/A | 1726 | 10 |
| Autor: Grupo 1 | ||
barplot(TDFfinalpais$ni,
main = "Gráfica Nº 6: Frecuencia (local) de países afectados por los sismos en el subcontinente indio.",
xlab = "Paises",
ylab = "Cantidad",
col = "skyblue",
names.arg = TDFfinalpais$variable,
las = 2
)barplot(TDFfinalpais$ni,
main = "Gráfica 7:Frecuencia (global) de países afectados por los sismos en el subcontinente indio.",
xlab = "Paises",
ylab = "Cantidad",
col = "skyblue",
names.arg = TDFfinalpais$variable,
ylim = c(0, 6000),
las = 2
)barplot(TDFfinalpais$hi,
main = "Gráfica 8: Porcentaje de países afectados por los sismos en el subcontinente indio.",
xlab = "Paises",
ylab = "Porcentaje (%)",
col = "skyblue",
names.arg = TDFfinalpais$variable,
ylim = c(0, 35),
las = 2
)for(i in 1:nrow(TDFfinalpais)) {
if(TDFfinalpais$ni[i] < 100) {
TDFfinalpais$Grupo[i] <- "Decenas"
} else if(TDFfinalpais$ni[i] < 1000) {
TDFfinalpais$Grupo[i] <- "Centenas"
} else {
TDFfinalpais$Grupo[i] <- "Miles"
}
}
# Tabla de frecuencias por grupo
Grupo <- table(TDFfinalpais$Grupo)
# Gráfico de barras
barplot(Grupo,
main = "Gráfica 9: Agrupación por frecuencia",
xlab = "Agrupaciones numéricas",
ylab = "Cantidad",
col = "skyblue")colores <- colorRampPalette(c("#cce5ff", "#004085"))(nrow(TDFfinalpais))
etiquetas <- paste(TDFfinalpais$hi, "%", sep = "")
pie(TDFfinalpais$hi,
radius = 1.0,
col = colores,
main = "Gráfica 10: Porcentaje de países afectados por los sismos en el subcontinente indio",
labels = etiquetas
)
legend("bottomright", legend = TDFfinalpais$variable, cex = 0.5, fill = colores)