Variable cualitativa nominal

País

Cargar datos

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.

Pais <- read.csv("C:/Users/HP/Desktop/Proyecto Sismos de la India/Pais.csv", sep="")
str(Pais)
## '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
ni <- TDFfinalpais$ni
sum(ni)
## [1] 17805

Tabla de distribución de frecuencias (TDF)

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
library(gt)
## 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
colores <- gray.colors(15, start = 0.3, end = 0.9, gamma = 2.2, rev = FALSE)

Diagramas

Diagrama de barras local (ni)

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
)

Diagrama de barras global (ni)

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
)

Diagrama de barras (Porcentaje)

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
)

Clasificación por rangos

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")

# Frecuencias relativas (porcentaje)
hi_grupo <- prop.table(Grupo) * 100

Diagrama circular

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)