La siguiente es la Guía de “Las Casas de Boston”
tomando como modelo la estructura de la guía “De Cero a Héroe
con Posit Cloud y GitHub”. La idea es que los estudiantes
trabajen paso a paso desde GitHub hasta Posit
Cloud, usando el dataset housing.csv
y generando
el documento en RMarkdown que exportarán a PDF, Word y
publicarán en RPubs.
Inicia sesión en GitHub.
Ve a Settings → Developer settings → Personal access tokens (classic).
Haz clic en Generate new token (elige classic).
Configura:
Haz clic en Generate token.
Copia el token (ej: ghp_...
) y
guárdalo. No se volverá a mostrar.
Crea un repositorio nuevo llamado: boston-housing.
Configura como Público.
Marca:
Haz clic en Create repository.
https://github.com/usuario/boston-housing.git
).En la Consola de R:
install.packages("usethis", repos="https://cloud.r-project.org")
install.packages("gitcreds", repos="https://cloud.r-project.org")
install.packages("credentials", repos="https://cloud.r-project.org")
library(usethis)
use_git_config(
user.name = "TuUsuarioGitHub",
user.email = "tu_email_asociado@example.com"
)
library(gitcreds)
gitcreds_set()
Cuando te pida Enter password or token, pega tu PAT y presiona Enter.
housing.csv
.Boston_Housing.Rmd
.---
title: "Guía: Las Casas de Boston"
author: "Nombre del Estudiante"
date: "2025-09-21"
output:
html_document:
toc: true
toc_float: true
pdf_document: default
word_document: default
---
library(tidyverse)
library(broom)
library(GGally)
library(janitor)
library(modelr)
df <- readr::read_csv("data/housing.csv") %>%
janitor::clean_names()
glimpse(df)
summary(df)
# Pares de variables numéricas
num_cols <- df %>% select(where(is.numeric)) %>% names()
GGally::ggpairs(df, columns = num_cols[1:6])
# Mapa geográfico
ggplot(df, aes(x=longitude, y=latitude, color=ocean_proximity)) +
geom_point(alpha=0.4) +
theme_minimal()
m1 <- lm(median_house_value ~ median_income + housing_median_age +
total_rooms + population + households + ocean_proximity,
data=df)
broom::glance(m1)
broom::tidy(m1, conf.int=TRUE)
par(mfrow=c(2,2))
plot(m1)
set.seed(42)
df_split <- df %>% modelr::resample_partition(c(train=0.8, test=0.2))
m2 <- lm(median_house_value ~ median_income + housing_median_age +
total_rooms + population + households + ocean_proximity,
data=modelr::resample_training(df_split$train))
pred <- predict(m2, newdata=modelr::resample_training(df_split$test))
rmse <- sqrt(mean((modelr::resample_response(df_split$test) - pred)^2))
rmse