La siguiente tarea busca reforzar tu aprendiza de los temas cubiertos en clase, así como poner en práctica tus habilidades en el manejo de datos masivos.
Resuelve cada uno de los puntos para la base de datos cars.csv No olvides cargar la libreria ´dplyr´antes de iniciar con tu programa
Almacena la información del archivo cars.csv en una variable llamada mis_datos y revisa su estructura con la función str()
library(readxl)
library(MASS)
library(stats)
library(psych)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:MASS':
##
## select
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(openxlsx)
mis_datos <- read.xlsx("cars.xlsx")
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 "Front and Rear" "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 : num 6 4 4 6 6 6 6 4 4 6 ...
## $ Horsepower : num 265 200 200 270 225 225 290 170 170 220 ...
## $ MPG_City : num 17 24 22 20 18 18 17 22 23 20 ...
## $ MPG_Highway: num 23 31 29 28 24 24 24 31 30 28 ...
## $ Weight : num 4451 2778 3230 NA 3880 ...
## $ Wheelbase : num 106 101 105 108 115 115 100 104 105 104 ...
## $ Length : num 189 172 183 186 197 197 174 179 180 179 ...
Como puedes ver, la base de datos cuenta con 428 observaciones y 15 variables. Las variables incluidas son: - Make = La marca del fabricante del automóvil - Model = El modelo del automóvil - Type = El tipo de automóvil - Origin = En dónde fue fabricado - DriveTrain = Indica el tipo de transmición - MSRP = Es el precio de venta en dólares sugerido por el fabricate - Invoice = Es el valor de la factura del automóvil - EngineSize = Es el tamaño del motor - Cylinders = Indica con cuántos cilindros cuenta - Horsepower = La potencia del automóvil en caballos de fuerza - MPG_City = Millas por galón de combustible en la ciudad - MPG_Highway = Millas por galón de combustible en carretera - Weight = Peso del automóvil en libras - Wheelbase = La distancia que hay entre el eje delantero y el eje trasero en pulgadas - Length = La longitud del automóvil en pulgadas
Revisa si en la variable mis_datos existen missing values, de ser así reemplazalos por la media.
summary(mis_datos)
## Make Model Type Origin
## Length:428 Length:428 Length:428 Length:428
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## DriveTrain MSRP Invoice EngineSize
## Length:428 Min. : 10280 Min. : 9875 Min. :1.300
## Class :character 1st Qu.: 20334 1st Qu.: 18866 1st Qu.:2.300
## Mode :character Median : 27635 Median : 25294 Median :3.000
## Mean : 32775 Mean : 30015 Mean :3.195
## 3rd Qu.: 39205 3rd Qu.: 35710 3rd Qu.:3.900
## Max. :192465 Max. :173560 Max. :8.300
## NA's :3
## Cylinders Horsepower MPG_City MPG_Highway
## Min. : 3.000 Min. : 73.0 Min. :10.00 Min. :12.00
## 1st Qu.: 4.000 1st Qu.:165.0 1st Qu.:17.00 1st Qu.:24.00
## Median : 6.000 Median :210.0 Median :19.00 Median :26.00
## Mean : 5.812 Mean :215.8 Mean :20.07 Mean :26.84
## 3rd Qu.: 6.000 3rd Qu.:253.8 3rd Qu.:21.75 3rd Qu.:29.00
## Max. :12.000 Max. :500.0 Max. :60.00 Max. :66.00
## NA's :3 NA's :6 NA's :2 NA's :2
## Weight Wheelbase Length
## Min. :1850 Min. : 89.0 Min. :143.0
## 1st Qu.:3102 1st Qu.:103.0 1st Qu.:178.0
## Median :3476 Median :107.0 Median :187.0
## Mean :3579 Mean :108.2 Mean :186.4
## 3rd Qu.:3979 3rd Qu.:112.0 3rd Qu.:194.0
## Max. :7190 Max. :144.0 Max. :238.0
## NA's :6 NA's :2 NA's :1
Utilizando algoritmos con la variable mis_datos, responde las siguientes preguntas:
¿Qué marca produce más vehículos y qué marca produce menos?
sort(table(mis_datos$Make), decreasing =TRUE)
##
## Toyota Chevrolet Mercedes-Benz Ford BMW
## 28 27 26 23 20
## Audi Honda Nissan Chrysler Volkswagen
## 19 17 17 15 15
## Dodge Mitsubishi Hyundai Jaguar Volvo
## 13 13 12 12 12
## Kia Lexus Mazda Pontiac Subaru
## 11 11 11 11 11
## Buick Lincoln Mercury Cadillac GMC
## 9 9 9 8 8
## Infiniti Saturn Suzuki Acura Porsche
## 8 8 8 7 7
## Saab Jeep Land Rover Oldsmobile Isuzu
## 7 3 3 3 2
## MINI Scion Hummer
## 2 2 1
¿Cuántos autos se producen por región con transmisión delantera, cuántos con transmisión trasera y cuántos con doble transmisión (All)?
transmision_region <- mis_datos[c("Origin", "DriveTrain")]
table(transmision_region)
## DriveTrain
## Origin Front Front and Rear Rear
## Asia 99 34 25
## Europe 37 36 50
## USA 90 22 35
Encuentra cuál es el precio sugerido más caro, cuál es el precio sugerido más barato, las millas por galón promedio para ciudad y las millas por galón promedio para carretera, utiliza el comando “table” y “summarise” para mostrar la información
info_p4 <- mis_datos[c("MSRP", "MPG_City", "MPG_Highway")]
summary(info_p4)
## MSRP MPG_City MPG_Highway
## Min. : 10280 Min. :10.00 Min. :12.00
## 1st Qu.: 20334 1st Qu.:17.00 1st Qu.:24.00
## Median : 27635 Median :19.00 Median :26.00
## Mean : 32775 Mean :20.07 Mean :26.84
## 3rd Qu.: 39205 3rd Qu.:21.75 3rd Qu.:29.00
## Max. :192465 Max. :60.00 Max. :66.00
## NA's :2 NA's :2
Selecciona solo las variables Make, Model, Type, Origin, DriveTrain, MSRP, Weight, Wheelbase y Lenght. Conserva solo las observaciones cuyo DriveTrain sea Front y almacena esta información en una variable llamada mis_nuevos_datos.
Imprime las primeras observaciones de la variable mis_nuevos_datos
transmision_delantera <- filter(mis_datos, DriveTrain == "Front")
mis_nuevos_datos <- transmision_delantera[c("Make", "Model", "Type", "Origin", "DriveTrain", "MSRP", "Weight", "Wheelbase", "Length")]
head(mis_nuevos_datos, 7)
## Make Model Type Origin DriveTrain MSRP Weight Wheelbase
## 1 Acura RSX Type S 2dr Sedan Asia Front 23820 2778 101
## 2 Acura TSX 4dr Sedan Asia Front 26990 3230 105
## 3 Acura TL 4dr Sedan Asia Front 33195 NA 108
## 4 Acura 3.5 RL 4dr Sedan Asia Front 43755 3880 115
## 5 Acura 3.5 RL w/Navigation 4dr Sedan Asia Front 46100 3893 115
## 6 Audi A4 1.8T 4dr Sedan Europe Front 25940 3252 104
## 7 Audi A41.8T convertible 2dr Sedan Europe Front 35940 3638 105
## Length
## 1 172
## 2 183
## 3 186
## 4 197
## 5 197
## 6 179
## 7 180
Con la información de la variable mis_nuevos_datos, necesitamos crear 3 nuevas variables, la primera llamada Weight_kilo que indique cuál es el peso del automóvil en kilos, la segunda llamada Wheelbase_cm que muestre el valor de la variable Wheelbase en centímetros, y una última variable llamada Length_cm que indique la longitud del vehículo en centímetros. Almacena toda esta información dentro de la variable mis_nuevos_datos
Weight_kilo <- mis_nuevos_datos$Weight/2.2046
Wheelbase_cm <- mis_nuevos_datos$Wheelbase*2.54
Length_cm <- mis_nuevos_datos$Length*2.54
mis_nuevos_datos$Weight_kilo <- Weight_kilo
mis_nuevos_datos$Wheelbase_cm <- Wheelbase_cm
mis_nuevos_datos$Length_cm <- Length_cm
head(mis_nuevos_datos)
## Make Model Type Origin DriveTrain MSRP Weight Wheelbase
## 1 Acura RSX Type S 2dr Sedan Asia Front 23820 2778 101
## 2 Acura TSX 4dr Sedan Asia Front 26990 3230 105
## 3 Acura TL 4dr Sedan Asia Front 33195 NA 108
## 4 Acura 3.5 RL 4dr Sedan Asia Front 43755 3880 115
## 5 Acura 3.5 RL w/Navigation 4dr Sedan Asia Front 46100 3893 115
## 6 Audi A4 1.8T 4dr Sedan Europe Front 25940 3252 104
## Length Weight_kilo Wheelbase_cm Length_cm
## 1 172 1260.093 256.54 436.88
## 2 183 1465.118 266.70 464.82
## 3 186 NA 274.32 472.44
## 4 197 1759.956 292.10 500.38
## 5 197 1765.853 292.10 500.38
## 6 179 1475.098 264.16 454.66
tail(mis_nuevos_datos)
## Make Model Type Origin DriveTrain MSRP Weight
## 221 Volvo S60 T5 4dr Sedan Europe Front 34845 3766
## 222 Volvo S80 2.9 4dr Sedan Europe Front 37730 3576
## 223 Volvo C70 LPT convertible 2dr Sedan Europe Front 40565 3450
## 224 Volvo C70 HPT convertible 2dr Sedan Europe Front 42565 3450
## 225 Volvo S80 T6 4dr Sedan Europe Front 45210 3653
## 226 Volvo V40 Wagon Europe Front 26135 2822
## Wheelbase Length Weight_kilo Wheelbase_cm Length_cm
## 221 107 180 1708.246 271.78 457.20
## 222 110 190 1622.063 279.40 482.60
## 223 105 186 1564.910 266.70 472.44
## 224 105 186 1564.910 266.70 472.44
## 225 110 190 1656.990 279.40 482.60
## 226 101 180 1280.051 256.54 457.20
Con la información de la variable mis_nuevos_datos, crea una nueva variable llamada opinion que esté en función del precio sugerido para la venta. Si el precio es mayor a 55,000 el valor de la variable opinion debe ser “Expensive”, si el precio está entre 55,000 y 29,000, la variable opinion debe decir “Normal”. Y si el precio es menor a 29,000 la variable opinion debe sugerir “Unexpensive”. Almacena la información en la variable mis_nuevos_datos
Opinion <- ifelse(mis_nuevos_datos$MSRP > 55000, "Expensive", ifelse((55000 >= mis_nuevos_datos$MSRP & mis_nuevos_datos$MSRP >= 29000), "Normal", "Unexpensive"))
mis_nuevos_datos$Opinion <- Opinion
head(mis_nuevos_datos[c("MSRP", "Opinion")], 20)
## MSRP Opinion
## 1 23820 Unexpensive
## 2 26990 Unexpensive
## 3 33195 Normal
## 4 43755 Normal
## 5 46100 Normal
## 6 25940 Unexpensive
## 7 35940 Normal
## 8 31840 Normal
## 9 36640 Normal
## 10 42490 Normal
## 11 84600 Expensive
## 12 35940 Normal
## 13 26545 Unexpensive
## 14 22180 Unexpensive
## 15 26470 Unexpensive
## 16 24895 Unexpensive
## 17 28345 Unexpensive
## 18 32245 Normal
## 19 35545 Normal
## 20 40720 Normal