typestar

survey_report.R en R

Limpiar un data frame de encuesta y reportar resultados por grupo en R base.

#!/usr/bin/env Rscript
# Limpia un data frame de encuesta y reporta resultados agrupados en R base.

survey <- data.frame(
  respondent = 1:8,
  region = c("north", "south", "north", "east",
             "south", "east", "north", NA),
  rating = c(4, 5, NA, 3, 5, 2, 4, 4),
  minutes = c(12, 25, 18, 7, 31, 9, 22, 14),
  stringsAsFactors = FALSE
)

clean <- survey[!is.na(survey$region) & !is.na(survey$rating), ]
clean$region <- factor(clean$region,
                       levels = c("north", "south", "east"))
clean$engaged <- clean$minutes > 15

cat("responses:", nrow(survey), "->", nrow(clean), "after cleaning\n\n")

by_region <- aggregate(cbind(rating, minutes) ~ region,
                       data = clean, FUN = mean)
by_region$rating <- round(by_region$rating, 2)
by_region$minutes <- round(by_region$minutes, 1)
print(by_region)

cat("\nengagement by region:\n")
print(table(clean$region, clean$engaged))

cat("\noverall mean rating:", round(mean(clean$rating), 2), "\n")
cat("correlation rating~minutes:",
    round(cor(clean$rating, clean$minutes), 3), "\n")

Cómo funciona

  1. Las filas sin región o sin calificación se descartan.
  2. factor ordena las regiones; una columna derivada marca la participación.
  3. aggregate y table producen el reporte agrupado.

El intento, en números

Líneas
31
Caracteres a escribir
999
Tokens
272
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 155 segundos.

Escribe este fragmento

Paso 1 de 1 en Bis; paso 8 de 8 en Data frames en R base.

← Anterior