TAREA 1: Lectura de Archivos, Limpieza y Manejo de Datos
Autor: [Tu Nombre y Matrícula]
Fecha: [Fecha actual]
#file.choose()
Librerías
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
======================
PREGUNTA 1
======================
Leer archivo cars.csv y revisar estructura
mis_datos <- read.csv("C:\\Users\\lechu\\Downloads\\cars.csv")
str(mis_datos)
## 'data.frame': 428 obs. of 15 variables:
## $ Make : chr "Acura" "Acura" "Acura" "Acura" ...
## $ Model : chr "MDX" "RSX Type S 2dr" "TSX 4dr" "TL 4dr" ...
## $ Type : chr "SUV" "Sedan" "Sedan" "Sedan" ...
## $ Origin : chr "Asia" "Asia" "Asia" "Asia" ...
## $ DriveTrain : chr "All" "Front" "Front" "Front" ...
## $ MSRP : num 36945 23820 26990 33195 43755 ...
## $ Invoice : num 33337 21761 24647 30299 39014 ...
## $ EngineSize : num 3.5 2 2.4 3.2 3.5 3.5 3.2 1.8 1.8 3 ...
## $ Cylinders : int 6 4 4 6 6 6 6 4 4 6 ...
## $ Horsepower : int 265 200 200 270 225 225 290 170 170 220 ...
## $ MPG_City : int 17 24 22 20 18 18 17 22 23 20 ...
## $ MPG_Highway: int 23 31 29 28 24 24 24 31 30 28 ...
## $ Weight : int 4451 2778 3230 NA 3880 3893 3153 3252 3638 3462 ...
## $ Wheelbase : int 106 101 105 108 115 115 100 104 105 104 ...
## $ Length : int 189 172 183 186 197 197 174 179 180 179 ...
======================
PREGUNTA 2
======================
======================
PREGUNTA 3
======================
¿Qué marca produce más vehículos y qué marca produce menos?
produccion_por_marca <- mis_datos %>%
count(Make, sort = TRUE)
marca_mas <- produccion_por_marca %>% slice_max(n, n = 1)
marca_menos <- produccion_por_marca %>% slice_min(n, n = 1)
print("Marca que produce más vehículos:")
## [1] "Marca que produce más vehículos:"
print(marca_mas)
## Make n
## 1 Toyota 28
print("Marca que produce menos vehículos:")
## [1] "Marca que produce menos vehículos:"
print(marca_menos)
## Make n
## 1 Hummer 1
======================
PREGUNTA 4
======================
Cuántos autos se producen por región según tipo de transmisión
produccion_por_region_drive <- mis_datos %>%
group_by(Origin, DriveTrain) %>%
summarise(total = n())
## `summarise()` has grouped output by 'Origin'. You can override using the
## `.groups` argument.
print(produccion_por_region_drive)
## # A tibble: 9 × 3
## # Groups: Origin [3]
## Origin DriveTrain total
## <chr> <chr> <int>
## 1 Asia All 34
## 2 Asia Front 99
## 3 Asia Rear 25
## 4 Europe All 36
## 5 Europe Front 37
## 6 Europe Rear 50
## 7 USA All 22
## 8 USA Front 90
## 9 USA Rear 35
======================
PREGUNTA 5
======================
# Precio sugerido más caro y más barato
precio_max <- max(mis_datos$MSRP, na.rm = TRUE)
precio_min <- min(mis_datos$MSRP, na.rm = TRUE)
# Convertir columnas de MPG a numéricas (por si vienen como texto)
mis_datos$MPG_City <- as.numeric(as.character(mis_datos$MPG_City))
mis_datos$MPG_Highway <- as.numeric(as.character(mis_datos$MPG_Highway))
# Revisar si hubo advertencias al convertir
# (valores no numéricos se volverán NA)
# summary(mis_datos$MPG_City)
# Millas por galón promedio ciudad y carretera
mpg_ciudad_prom <- mean(mis_datos$MPG_City, na.rm = TRUE)
mpg_carretera_prom <- mean(mis_datos$MPG_Highway, na.rm = TRUE)
# Imprimir resultados
cat("Precio sugerido más caro:", precio_max, "\n")
## Precio sugerido más caro: 192465
cat("Precio sugerido más barato:", precio_min, "\n")
## Precio sugerido más barato: 10280
cat("MPG promedio ciudad:", mpg_ciudad_prom, "\n")
## MPG promedio ciudad: 20.06573
cat("MPG promedio carretera:", mpg_carretera_prom, "\n")
## MPG promedio carretera: 26.84038
======================
PREGUNTA 6
======================
# Seleccionar columnas específicas y filtrar solo autos con transmisión delantera
mis_nuevos_datos <- mis_datos %>%
select(Make, Model, Type, Origin, DriveTrain, MSRP, Weight, Wheelbase, Length) %>%
filter(DriveTrain == "Front")
======================
PREGUNTA 7
======================
# Crear nuevas variables: peso en kilos, Wheelbase y Length en centímetros
mis_nuevos_datos <- mis_nuevos_datos %>%
mutate(
Weight_kilo = Weight * 0.453592, # 1 libra = 0.453592 kg
Wheelbase_cm = Wheelbase * 2.54, # 1 pulgada = 2.54 cm
Length_cm = Length * 2.54 # 1 pulgada = 2.54 cm
)
# Mostrar las primeras observaciones
head(mis_nuevos_datos)
## Make Model Type Origin DriveTrain MSRP Weight
## 1 Acura RSX Type S 2dr Sedan Asia Front 23820 2778.000
## 2 Acura TSX 4dr Sedan Asia Front 26990 3230.000
## 3 Acura TL 4dr Sedan Asia Front 33195 3578.229
## 4 Acura 3.5 RL 4dr Sedan Asia Front 43755 3880.000
## 5 Acura 3.5 RL w/Navigation 4dr Sedan Asia Front 46100 3893.000
## 6 Audi A4 1.8T 4dr Sedan Europe Front 25940 3252.000
## Wheelbase Length Weight_kilo Wheelbase_cm Length_cm
## 1 101 172 1260.079 256.54 436.88
## 2 105 183 1465.102 266.70 464.82
## 3 108 186 1623.056 274.32 472.44
## 4 115 197 1759.937 292.10 500.38
## 5 115 197 1765.834 292.10 500.38
## 6 104 179 1475.081 264.16 454.66
======================
PREGUNTA 8
======================
# Crear variable opinion basada en el precio sugerido (MSRP)
mis_nuevos_datos <- mis_nuevos_datos %>%
mutate(
opinion = case_when(
MSRP > 60000 ~ "Expensive",
MSRP >= 30000 & MSRP <= 60000 ~ "Normal",
MSRP < 30000 ~ "Inexpensive"
)
)
# Mostrar algunas filas finales
head(mis_nuevos_datos)
## Make Model Type Origin DriveTrain MSRP Weight
## 1 Acura RSX Type S 2dr Sedan Asia Front 23820 2778.000
## 2 Acura TSX 4dr Sedan Asia Front 26990 3230.000
## 3 Acura TL 4dr Sedan Asia Front 33195 3578.229
## 4 Acura 3.5 RL 4dr Sedan Asia Front 43755 3880.000
## 5 Acura 3.5 RL w/Navigation 4dr Sedan Asia Front 46100 3893.000
## 6 Audi A4 1.8T 4dr Sedan Europe Front 25940 3252.000
## Wheelbase Length Weight_kilo Wheelbase_cm Length_cm opinion
## 1 101 172 1260.079 256.54 436.88 Inexpensive
## 2 105 183 1465.102 266.70 464.82 Inexpensive
## 3 108 186 1623.056 274.32 472.44 Normal
## 4 115 197 1759.937 292.10 500.38 Normal
## 5 115 197 1765.834 292.10 500.38 Normal
## 6 104 179 1475.081 264.16 454.66 Inexpensive