auto-mpg.csv que
previamente le fue entregada. Use la siguiente línea de código:options(scipen = 999)
data <- read.csv("auto-mpg.csv")
Una vez cargada la base de datos desarrolle los siguientes ejercicios.
Con el fin de darles pistas se presentan las salidas que se deben obtener pero no se muestra el código.
Lea bien las instrucciones de cada ejercicio. Es posible obtener la misma salida con el procedimiento incorrecto.
Explore el data frame data usando las funciones
summary() y str(). Haga un comentario sobre
las diferencias entre los resultados de la columna car_name
con el resto de las columnas.
## No mpg cylinders displacement
## Min. : 1.0 Min. : 9.00 Min. :3.000 Min. : 68.0
## 1st Qu.:100.2 1st Qu.:17.50 1st Qu.:4.000 1st Qu.:104.2
## Median :199.5 Median :23.00 Median :4.000 Median :148.5
## Mean :199.5 Mean :23.51 Mean :5.455 Mean :193.4
## 3rd Qu.:298.8 3rd Qu.:29.00 3rd Qu.:8.000 3rd Qu.:262.0
## Max. :398.0 Max. :46.60 Max. :8.000 Max. :455.0
## horsepower weight acceleration model_year
## Min. : 46.0 Min. :1613 Min. : 8.00 Min. :70.00
## 1st Qu.: 76.0 1st Qu.:2224 1st Qu.:13.82 1st Qu.:73.00
## Median : 92.0 Median :2804 Median :15.50 Median :76.00
## Mean :104.1 Mean :2970 Mean :15.57 Mean :76.01
## 3rd Qu.:125.0 3rd Qu.:3608 3rd Qu.:17.18 3rd Qu.:79.00
## Max. :230.0 Max. :5140 Max. :24.80 Max. :82.00
## car_name
## Length:398
## Class :character
## Mode :character
##
##
##
## 'data.frame': 398 obs. of 9 variables:
## $ No : int 1 2 3 4 5 6 7 8 9 10 ...
## $ mpg : num 28 19 36 28 21 23 15.5 32.9 16 13 ...
## $ cylinders : int 4 3 4 4 6 4 8 4 6 8 ...
## $ displacement: num 140 70 107 97 199 115 304 119 250 318 ...
## $ horsepower : int 90 97 75 92 90 95 120 100 105 150 ...
## $ weight : int 2264 2330 2205 2288 2648 2694 3962 2615 3897 3755 ...
## $ acceleration: num 15.5 13.5 14.5 17 15 15 13.9 14.8 18.5 14 ...
## $ model_year : int 71 72 82 72 70 75 76 81 75 76 ...
## $ car_name : chr "chevrolet vega 2300" "mazda rx2 coupe" "honda accord" "datsun 510 (sw)" ...
Elimine la columna No del data frame
data.
Cambie el nombre de las columnas de data (excepto la
columna “mpg”) por los siguientes nombres:
Imprima los 5 primeras filas de data con la función
head().
## mpg cilindros cilindraje potencia peso aceleracion modelo nombre_carro
## 1 28 4 140 90 2264 15.5 71 chevrolet vega 2300
## 2 19 3 70 97 2330 13.5 72 mazda rx2 coupe
## 3 36 4 107 75 2205 14.5 82 honda accord
## 4 28 4 97 92 2288 17.0 72 datsun 510 (sw)
## 5 21 6 199 90 2648 15.0 70 amc gremlin
data mediante la función
class().## [1] "data.frame"
cilindros,
aceleración, modelo y
nombre_carro mediante la función class().## [1] "integer"
## [1] "numeric"
## [1] "integer"
## [1] "character"
Defina un data frame con el nombre cilindros_4 en
donde se seleccione toda la información de los carros con 4
cilindros.
Imprima las últimas 7 filas de cilindros_4 con la
función tail().
## mpg cilindros cilindraje potencia peso aceleracion modelo
## 386 35.1 4 81 60 1760 16.1 81
## 388 44.6 4 91 67 1850 13.8 80
## 391 32.1 4 98 70 2120 15.5 80
## 392 23.9 4 119 97 2405 14.9 78
## 395 34.5 4 105 70 2150 14.9 79
## 396 38.1 4 89 60 1968 18.8 80
## 397 30.5 4 98 63 2051 17.0 77
## nombre_carro
## 386 honda civic 1300
## 388 honda civic 1500 gl
## 391 chevrolet chevette
## 392 datsun 200-sx
## 395 plymouth horizon tc3
## 396 toyota corolla tercel
## 397 chevrolet chevette
## [1] 9594
## [1] 1541.2
Agregue a data la columna edad con la
edad que en el año 2023 tiene cada carro. Por ejemplo, el primer carro
es modelo 71 y por lo tanto su edad es: 2023 - 1971 = 52.
Imprima las 9 primeras filas de data usando la
función head()
## mpg cilindros cilindraje potencia peso aceleracion modelo
## 1 28.0 4 140 90 2264 15.5 71
## 2 19.0 3 70 97 2330 13.5 72
## 3 36.0 4 107 75 2205 14.5 82
## 4 28.0 4 97 92 2288 17.0 72
## 5 21.0 6 199 90 2648 15.0 70
## 6 23.0 4 115 95 2694 15.0 75
## 7 15.5 8 304 120 3962 13.9 76
## 8 32.9 4 119 100 2615 14.8 81
## 9 16.0 6 250 105 3897 18.5 75
## nombre_carro edad
## 1 chevrolet vega 2300 52
## 2 mazda rx2 coupe 51
## 3 honda accord 41
## 4 datsun 510 (sw) 51
## 5 amc gremlin 53
## 6 audi 100ls 48
## 7 amc matador 47
## 8 datsun 200sx 42
## 9 chevroelt chevelle malibu 48
Agregue la columna precio_actual suponiendo que el
precio actual de cada carro es el cilindraje multiplicado por 1500000.
Por ejemplo, el primer carro tiene un cilindraje de 140, por lo tanto su
precio actual es: 140*1500000 = 210000000.
Imprima las 8 últimas filas de data usando la
función tail().
## mpg cilindros cilindraje potencia peso aceleracion modelo
## 391 32.1 4 98 70 2120 15.5 80
## 392 23.9 4 119 97 2405 14.9 78
## 393 13.0 8 350 155 4502 13.5 72
## 394 16.5 6 168 120 3820 16.7 76
## 395 34.5 4 105 70 2150 14.9 79
## 396 38.1 4 89 60 1968 18.8 80
## 397 30.5 4 98 63 2051 17.0 77
## 398 19.0 6 232 100 2634 13.0 71
## nombre_carro edad precio_actual
## 391 chevrolet chevette 43 147000000
## 392 datsun 200-sx 45 178500000
## 393 buick lesabre custom 51 525000000
## 394 mercedes-benz 280s 47 252000000
## 395 plymouth horizon tc3 44 157500000
## 396 toyota corolla tercel 43 133500000
## 397 chevrolet chevette 46 147000000
## 398 amc gremlin 52 348000000
Agregue la columna precio_inicial suponiendo que el
precio inicial de cada carro es el “precio_actual” llevado al año del
modelo con una tasa de descuento del 4% efectivo anual. Por ejemplo, el
precio actual del primer carro es 210000000 y tiene una edad de 52 años.
Entonces, su precio inicial es: 210000000/(1 + 0.04) ^ 52 =
27320312.
Imprima las 6 primeras filas de data usando la
función head()
## mpg cilindros cilindraje potencia peso aceleracion modelo nombre_carro
## 1 28 4 140 90 2264 15.5 71 chevrolet vega 2300
## 2 19 3 70 97 2330 13.5 72 mazda rx2 coupe
## 3 36 4 107 75 2205 14.5 82 honda accord
## 4 28 4 97 92 2288 17.0 72 datsun 510 (sw)
## 5 21 6 199 90 2648 15.0 70 amc gremlin
## 6 23 4 115 95 2694 15.0 75 audi 100ls
## edad precio_actual precio_inicial
## 1 52 210000000 27320312
## 2 51 105000000 14206562
## 3 41 160500000 32144607
## 4 51 145500000 19686236
## 5 53 298500000 37340261
## 6 48 172500000 26253597
Realice el histograma de la variable mpg (millas por
galón). Use la función hist() con
breaks = 30.
Realice un gráfico de dispersión de la columna
cilindraje contra la variable potencia. Haga un comentario
sobre el resultado.
viviendas.csv que
previamente le fue entregada. Use la siguiente línea de código:data <- read.csv("viviendas.csv")
Una vez cargada la base de datos desarrolle los siguientes ejercicios.
Con el fin de darles pistas se presentan las salidas que se deben obtener pero no se muestra el código.
Lea bien las instrucciones de cada ejercicio.
Explore el data frame data usando las funciones
summary() y str().
## inmueble parqueaderos precio alcobas
## Length:264 Min. :0.0000 Min. : 42000000 Min. :1.00
## Class :character 1st Qu.:0.0000 1st Qu.: 104000000 1st Qu.:2.00
## Mode :character Median :1.0000 Median : 216000000 Median :3.00
## Mean :0.9773 Mean : 291743594 Mean :2.75
## 3rd Qu.:2.0000 3rd Qu.: 421250000 3rd Qu.:3.00
## Max. :3.0000 Max. :1725000000 Max. :5.00
## banos area fecha_construc comuna
## Min. :1.000 Min. : 30.00 Min. :1964 Min. : 2.00
## 1st Qu.:1.000 1st Qu.: 54.23 1st Qu.:1994 1st Qu.:10.00
## Median :2.000 Median : 81.08 Median :2004 Median :12.00
## Mean :2.008 Mean : 98.41 Mean :2001 Mean :11.93
## 3rd Qu.:2.000 3rd Qu.:132.22 3rd Qu.:2011 3rd Qu.:14.00
## Max. :5.000 Max. :278.00 Max. :2018 Max. :16.00
## barrio
## Length:264
## Class :character
## Mode :character
##
##
##
## 'data.frame': 264 obs. of 9 variables:
## $ inmueble : chr "Apartamento" "Apartamento" "Casa" "Casa" ...
## $ parqueaderos : int 0 1 0 0 1 1 0 0 1 1 ...
## $ precio : int 180000000 118000000 90000000 55000000 42000000 73000000 69000000 72000000 104000000 120000000 ...
## $ alcobas : int 2 1 4 3 2 3 3 2 3 2 ...
## $ banos : int 1 1 2 2 1 1 1 1 2 2 ...
## $ area : num 43 53 84 75 43 54 41 40 62 47 ...
## $ fecha_construc: int 2011 1987 1999 1978 2013 1996 2004 2010 2013 2008 ...
## $ comuna : int 11 11 15 10 13 12 10 9 16 10 ...
## $ barrio : chr "Laureles Estadio" "Laureles Estadio" "Guayabal" "La Candelaria" ...
data:inmueble, parqueaderos,
alcobas, banos y comuna. Aplique
las funciones summary() y str() a
data.## inmueble parqueaderos precio alcobas banos
## Apartamento:226 0:94 Min. : 42000000 1: 20 1: 67
## Casa : 38 1:92 1st Qu.: 104000000 2: 54 2:134
## 2:68 Median : 216000000 3:165 3: 58
## 3:10 Mean : 291743594 4: 22 4: 4
## 3rd Qu.: 421250000 5: 3 5: 1
## Max. :1725000000
##
## area fecha_construc comuna barrio
## Min. : 30.00 Min. :1964 14 :78 El Poblado :78
## 1st Qu.: 54.23 1st Qu.:1994 10 :35 Belen :35
## Median : 81.08 Median :2004 16 :35 La Candelaria :35
## Mean : 98.41 Mean :2001 7 :26 Robledo :26
## 3rd Qu.:132.22 3rd Qu.:2011 11 :25 Laureles Estadio:25
## Max. :278.00 Max. :2018 9 :20 Buenos Aires :20
## (Other):45 (Other) :45
## 'data.frame': 264 obs. of 9 variables:
## $ inmueble : Factor w/ 2 levels "Apartamento",..: 1 1 2 2 1 1 1 1 1 1 ...
## $ parqueaderos : Factor w/ 4 levels "0","1","2","3": 1 2 1 1 2 2 1 1 2 2 ...
## $ precio : int 180000000 118000000 90000000 55000000 42000000 73000000 69000000 72000000 104000000 120000000 ...
## $ alcobas : Factor w/ 5 levels "1","2","3","4",..: 2 1 4 3 2 3 3 2 3 2 ...
## $ banos : Factor w/ 5 levels "1","2","3","4",..: 1 1 2 2 1 1 1 1 2 2 ...
## $ area : num 43 53 84 75 43 54 41 40 62 47 ...
## $ fecha_construc: int 2011 1987 1999 1978 2013 1996 2004 2010 2013 2008 ...
## $ comuna : Factor w/ 14 levels "2","3","4","5",..: 9 9 13 8 11 10 8 7 14 8 ...
## $ barrio : Factor w/ 14 levels "Aranjuez","Belen",..: 9 9 6 8 12 7 8 3 2 8 ...
area_factor que agrupe las
viviendas dependiendo de su respectiva área en intervalos de 50 metros
cuadrados desde 0 hasta 300. Imprima los primeros 6 elementos de
area_factor.## [1] (0,50] (50,100] (50,100] (50,100] (0,50] (50,100]
## Levels: (0,50] (50,100] (100,150] (150,200] (200,250] (250,300]
area_factor.## [1] tipo1 tipo2 tipo2 tipo2 tipo1 tipo2
## Levels: tipo1 tipo2 tipo3 tipo4 tipo5 tipo6
Grafique el factor area_factor.
Cree el nuevo factor area_factor_ordered organizando
los niveles de area_factor por el número de componentes de
menor a mayor. Imprima los primeros 6 elementos de
area_factor_ordered.
## [1] tipo1 tipo2 tipo2 tipo2 tipo1 tipo2
## Levels: tipo6 < tipo5 < tipo4 < tipo1 < tipo3 < tipo2
area_factor_ordered.tipo6 está en la posición 213 de
area_factor. Elimínela, imprima los primeros 6 elementos de
area_factor.## [1] tipo1 tipo2 tipo2 tipo2 tipo1 tipo2
## Levels: tipo1 tipo2 tipo3 tipo4 tipo5 tipo6
area_factor.area_factor.Realice un gráfico circular en el que muestre los porcentajes de cada tipo de vivienda según los resultados del Ejercicio 3.
Realice de nuevo el gráfico circular del Ejercicio 4 pero agregándole el título “Tipos de vivienda”, con los colores en sentido antihorario y con la leyenda al lado superior izquierdo.
data2 extrayendo
de data las columnas
comuna,precio,area y
fecha_construc en ese orden, . Imprima las seis primeras
filas de data2.## comuna precio area fecha_construc
## 1 11 180000000 43 2011
## 2 11 118000000 53 1987
## 3 15 90000000 84 1999
## 4 10 55000000 75 1978
## 5 13 42000000 43 2013
## 6 12 73000000 54 1996
data2 la columna edad con la
edad de cada vivienda desde su fecha de construcción hasta el presente
año 2023. Aplique la función str().## 'data.frame': 264 obs. of 5 variables:
## $ comuna : Factor w/ 14 levels "2","3","4","5",..: 9 9 13 8 11 10 8 7 14 8 ...
## $ precio : int 180000000 118000000 90000000 55000000 42000000 73000000 69000000 72000000 104000000 120000000 ...
## $ area : num 43 53 84 75 43 54 41 40 62 47 ...
## $ fecha_construc: int 2011 1987 1999 1978 2013 1996 2004 2010 2013 2008 ...
## $ edad : num 12 36 24 45 10 27 19 13 10 15 ...
Realice un gráfico de dispersión de la columna area
contra la variable precio. Haga un comentario sobre el
resultado.
Realice un gráfico de dispersión de la columna edad
contra la variable precio. Haga un comentario sobre el
resultado.
Elimine de data2 las observaciones correspondientes a
las viviendas con un precio superior a $1,000,000,000 y repita las
gráficas de los Ejercicios 7 y 8.
Modifique la columna comuna de data2 para
que en vez del número correspondiente a la comuna aparezca: “comuna_2”,
“comuna_3”, “comuna_4”…“comuna_16”. Aplique la función
summary() a la columna comuna.
## comuna_2 comuna_3 comuna_4 comuna_5 comuna_6 comuna_7 comuna_8 comuna_9
## 1 1 3 1 0 26 7 20
## comuna_10 comuna_11 comuna_12 comuna_13 comuna_14 comuna_15 comuna_16
## 34 25 14 3 77 15 35