# Papas margarita #Codigo de R
#Paquetes
pkgs <- c("readr","dplyr","tidyr","stringr","ggplot2")
to_install <- pkgs[!pkgs %in% installed.packages()[,"Package"]]
if(length(to_install) > 0) install.packages(to_install)
library(readr)
library(dplyr)
library(tidyr)
library(stringr)
library(ggplot2)
df <- read_csv(csv_url, show_col_types = FALSE) cat(“=== Columnas ===”) print(names(df))
cols_q <- grep(“Si el precio”, names(df), ignore.case = TRUE, value = TRUE)
if(length(cols_q) == 0){ stop(“No encontré columnas con ‘Si el precio’. Cambia el patrón del grep() según el texto real de tus columnas.”) }
df_long <- df %>% pivot_longer( cols = all_of(cols_q), names_to = “pregunta_precio”, values_to = “cantidad_raw” ) %>% mutate( precio = as.numeric(str_extract(pregunta_precio, “\d+”)), cantidad = parse_number(as.character(cantidad_raw), locale = locale(grouping_mark=“.”, decimal_mark=“,”)) ) %>% filter(!is.na(precio), !is.na(cantidad))
cat(“=== Resumen df_long ===”) print(summary(df_long[, c(“precio”,“cantidad”)]))
print( ggplot(df_long, aes(x = precio, y = cantidad)) + geom_point() + geom_smooth(method = “lm”, se = TRUE) + labs(title = “Cantidad demandada vs Precio”, x = “Precio (COP)”, y = “Cantidad”) )
m <- lm(cantidad ~ precio, data = df_long) cat(“=== REGRESIÓN ===”) print(summary(m))
corr <- cor(df_long\(precio, df_long\)cantidad, use = “complete.obs”) cat(“=== CORRELACIÓN ===”) print(corr)
b1 <- coef(m)[[“precio”]] Pbar <- mean(df_long\(precio) Qbar <- mean(df_long\)cantidad) E <- b1 * (Pbar / Qbar)
cat(“=== ELASTICIDAD ===”) cat(“b1 =”, b1, “=”, Pbar, “=”, Qbar, “=”, E, “”) ```