Introducción

Este documento contiene el código en R que realiza el análisis solicitado sobre un conjunto de datos de casas.
Se agregan 5 renglones más (casas entre 125 y 185 m²), se calcula la media del precio original, se asignan precios a las nuevas casas entre el valor máximo y la media calculada, y se obtienen estadísticas (rango, varianza, desviación estándar). Finalmente se genera una gráfica de barras que relaciona precio y tamaño.


Datos originales actualizados

casas <- data.frame(
  Tamaño = c(50, 60, 70, 80, 100, 120),
  Precio = c(150, 180, 200, 240, 300, 360)
)

knitr::kable(casas, caption = "Conjunto de datos original (actualizado)", row.names = FALSE)
Conjunto de datos original (actualizado)
Tamaño Precio
50 150
60 180
70 200
80 240
100 300
120 360

Crear 5 nuevas casas

nuevas_casas <- data.frame(
  Tamaño = c(125, 140, 155, 170, 185),
  Precio = NA
)

knitr::kable(nuevas_casas, caption = "Nuevas casas añadidas", row.names = FALSE)
Nuevas casas añadidas
Tamaño Precio
125 NA
140 NA
155 NA
170 NA
185 NA

Calcular media y máximo del precio original

media_precio <- mean(casas$Precio)
precio_max <- max(casas$Precio)
media_precio
## [1] 238.3333

Asignar precios a las nuevas casas proporcionalmente

# Interpolación lineal descendente entre max y media
nuevas_casas$Precio <- seq(from = precio_max - 10, to = media_precio + 10, length.out = nrow(nuevas_casas))

knitr::kable(nuevas_casas, caption = "Nuevas casas con precios asignados", row.names = FALSE)
Nuevas casas con precios asignados
Tamaño Precio
125 350.0000
140 324.5833
155 299.1667
170 273.7500
185 248.3333

Unir conjuntos y calcular estadísticas

casas_total <- rbind(casas, nuevas_casas)

rango_precio <- max(casas_total$Precio) - min(casas_total$Precio)
varianza_precio <- var(casas_total$Precio)
desviacion_precio <- sd(casas_total$Precio)

est_stats <- data.frame(
  Estadística = c("Media (original)", "Precio máximo (total)", "Precio mínimo (total)", "Rango", "Varianza", "Desviación estándar"),
  Valor = c(media_precio, max(casas_total$Precio), min(casas_total$Precio), rango_precio, varianza_precio, desviacion_precio)
)

knitr::kable(est_stats, digits = 2, caption = "Estadísticas sobre los precios", row.names = FALSE)
Estadísticas sobre los precios
Estadística Valor
Media (original) 238.33
Precio máximo (total) 360.00
Precio mínimo (total) 150.00
Rango 210.00
Varianza 4783.62
Desviación estándar 69.16

Gráfica de barras

casas_total <- casas_total[order(casas_total$Tamaño), ]
palette_col <- grDevices::colorRampPalette(c("#4E79A7", "#F28E2B", "#E15759"))(nrow(casas_total))

barplot(
  height = casas_total$Precio,
  names.arg = casas_total$Tamaño,
  las = 2,
  cex.names = 0.9,
  col = palette_col,
  main = "Relación Precio vs Tamaño de Casas",
  xlab = "Tamaño de la casa (m²)",
  ylab = "Precio (miles de dólares)",
  border = "white"
)

bp <- barplot(
  height = casas_total$Precio,
  names.arg = NA,
  plot = FALSE
)
text(x = bp, y = casas_total$Precio, labels = round(casas_total$Precio, 1), pos = 3, cex = 0.8)


Conclusiones rápidas