.
En este documento se desarrolla ejercicios referentes al manejo de data frames. Se crean diferentes objetos en R, tales como data frames y listas, y se realizan operaciones las cuales estaran basados en lo el ejercicio nos pida realizar.
A continuación se presenta todo el proceso paso a paso.
La tabla presenta la altura, en metros, de los arboles que se encuentran en 4 áreas de terreno.
Se dispone de una tabla que presenta las alturas, medidas en metros, de los árboles muestreados en cuatro áreas de terreno distintas (Área 1, Área 2, Área 3 y Área 4). El objetivo es utilizar las capacidades de programación y análisis de datos de R para realizar una serie de manipulaciones y cálculos estadísticos sobre estos datos de altura.
Codigo en R:
area1 <- c(7.5, 12, 14.5)
area2 <- c(12.5, 10.5, 13, 9, 18.5)
area3 <- c(11, 8, 7.5, 9.5, 19, 14)
area4 <- c(12.5, 16, 9.5, 10)
print("Área 1:")
## [1] "Área 1:"
print(area1)
## [1] 7.5 12.0 14.5
print("Área 2:")
## [1] "Área 2:"
print(area2)
## [1] 12.5 10.5 13.0 9.0 18.5
print("Área 3:")
## [1] "Área 3:"
print(area3)
## [1] 11.0 8.0 7.5 9.5 19.0 14.0
print("Área 4:")
## [1] "Área 4:"
print(area4)
## [1] 12.5 16.0 9.5 10.0
lista_areas <- list(area1 = area1, area2 = area2, area3 = area3, area4 = area4)
print("Lista de Áreas:")
## [1] "Lista de Áreas:"
print(lista_areas)
## $area1
## [1] 7.5 12.0 14.5
##
## $area2
## [1] 12.5 10.5 13.0 9.0 18.5
##
## $area3
## [1] 11.0 8.0 7.5 9.5 19.0 14.0
##
## $area4
## [1] 12.5 16.0 9.5 10.0
resultado_c <- sapply(lista_areas, function(x) x[1] > x[length(x)])
print("c) Primer árbol > Último árbol:")
## [1] "c) Primer árbol > Último árbol:"
print(resultado_c)
## area1 area2 area3 area4
## FALSE FALSE FALSE TRUE
Resultado esperado:
log_area3_3ro <- log10(area3[3])
print("d) log10 de 3er árbol en área 3:")
## [1] "d) log10 de 3er árbol en área 3:"
print(log_area3_3ro)
## [1] 0.8750613
suma_area4_3 <- sum(area4[1:3])
print("e) Suma de los 3 primeros árboles del área 4:")
## [1] "e) Suma de los 3 primeros árboles del área 4:"
print(suma_area4_3)
## [1] 38
media_area1 <- mean(area1)
print("f) Altura media del área 1:")
## [1] "f) Altura media del área 1:"
print(media_area1)
## [1] 11.33333
La tabla recopila información de 5 pacientes (sexo, presión arterial y pulsos por minuto), atendidos en un hospital.
El ejercicio requiere la creación, manipulación y análisis elemental de un pequeño conjunto de datos médicos que contiene el sexo, la presión arterial y el pulso por minuto de cinco pacientes. El objetivo principal es demostrar la habilidad para estructurar correctamente estos datos en un dataframe, acceder a filas y columnas específicas mediante indexación, realizar comparaciones lógicas entre valores condicionales, calcular la media para un subconjunto de datos (hombres) y aplicar una función matemática básica (raíz cuadrada) a un dato individual, cubriendo así las operaciones fundamentales de gestión de datos en R.
Codigo en R:
datos <- data.frame(
Sexo = c("Hombre", "Mujer", "Hombre", "Hombre", "Mujer"),
Presion = c(119, 99, 102, 78, 78),
Pulso = c(59, 89, 107, 76, 91)
)
datos[c(1, 4), ]
## Sexo Presion Pulso
## 1 Hombre 119 59
## 4 Hombre 78 76
datos$Presion[2] > datos$Presion[5]
## [1] TRUE
mean(datos$Pulso[datos$Sexo == "Hombre"])
## [1] 80.66667
sqrt(datos$Presion[4])
## [1] 8.831761
Ejercicio Integral con el Dataset mtcars Planteamiento del Ejercicio:
Dataset: mtcars
Descripción: El conjunto de datos mtcars contiene datos sobre 32 modelos de automóviles, con variables que incluyen el consumo de combustible, el número de cilindros, la potencia, y más.
Objetivo: Responder a una serie de preguntas utilizando técnicas de manipulación de dataframes en R.
Pregunta: Carga el dataset mtcars y muestra las primeras 10 filas
Pregunta: ¿Cuántas observaciones y variables hay en el dataset? Muestra un resumen estadístico del dataset.
Pregunta: Selecciona y muestra las columnas mpg (millas por galón) y hp (caballos de fuerza).
Pregunta: Filtra el dataset para mostrar solo los automóviles que tienen 6 cilindros.
Pregunta: ¿Cuál es el valor promedio de mpg para cada número de cilindros?
Pregunta: Añade una nueva columna llamada kpl que sea el equivalente en kilómetros por litro (1 milla por galón = 0.425144 km por litro)
Pregunta: Ordena el dataset por hp en orden descendente y muestra las primeras 10 filas
Pregunta: Crea un diagrama de dispersión de mpg vs wt (peso) coloreado por cyl
Pregunta: Calcula y muestra la matriz de correlación entre las variables numéricas del dataframe
En el ejercicio se va ha aplicar técnicas de manipulación y análisis exploratorio de dataframes en R sobre el dataset mtcars, que contiene datos sobre 32 modelos de automóviles y sus características (consumo, cilindros, potencia, etc.). El desafío se estructura en una serie de pasos secuenciales que deben resolverse con código en RStudio: primero, se debe realizar la carga y exploración inicial del dataset, mostrando sus primeras filas. Luego, se debe obtener un resumen estadístico y determinar el número de observaciones y variables. A continuación, se requiere la selección y visualización de columnas específicas (como mpg y hp). Posteriormente, se debe aplicar filtrado de datos para aislar únicamente los vehículos con 6 cilindros. Finalmente, se concluye con un análisis descriptivo calculando el promedio de millas por galón (mpg) para cada número de cilindros, demostrando la capacidad de agrupar y resumir la información dentro del dataframe.
Codigo en R:
data(mtcars)
head(mtcars, 10)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
dim(mtcars)
## [1] 32 11
summary(mtcars)
## mpg cyl disp hp
## Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
## 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
## Median :19.20 Median :6.000 Median :196.3 Median :123.0
## Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
## 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
## Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
## drat wt qsec vs
## Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
## 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
## Median :3.695 Median :3.325 Median :17.71 Median :0.0000
## Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
## 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
## Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
## am gear carb
## Min. :0.0000 Min. :3.000 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
## Median :0.0000 Median :4.000 Median :2.000
## Mean :0.4062 Mean :3.688 Mean :2.812
## 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :1.0000 Max. :5.000 Max. :8.000
mtcars[, c("mpg", "hp")]
## mpg hp
## Mazda RX4 21.0 110
## Mazda RX4 Wag 21.0 110
## Datsun 710 22.8 93
## Hornet 4 Drive 21.4 110
## Hornet Sportabout 18.7 175
## Valiant 18.1 105
## Duster 360 14.3 245
## Merc 240D 24.4 62
## Merc 230 22.8 95
## Merc 280 19.2 123
## Merc 280C 17.8 123
## Merc 450SE 16.4 180
## Merc 450SL 17.3 180
## Merc 450SLC 15.2 180
## Cadillac Fleetwood 10.4 205
## Lincoln Continental 10.4 215
## Chrysler Imperial 14.7 230
## Fiat 128 32.4 66
## Honda Civic 30.4 52
## Toyota Corolla 33.9 65
## Toyota Corona 21.5 97
## Dodge Challenger 15.5 150
## AMC Javelin 15.2 150
## Camaro Z28 13.3 245
## Pontiac Firebird 19.2 175
## Fiat X1-9 27.3 66
## Porsche 914-2 26.0 91
## Lotus Europa 30.4 113
## Ford Pantera L 15.8 264
## Ferrari Dino 19.7 175
## Maserati Bora 15.0 335
## Volvo 142E 21.4 109
mtcars_6cyl <- mtcars[mtcars$cyl == 6, ]
mtcars_6cyl
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
tapply(mtcars$mpg, mtcars$cyl, mean)
## 4 6 8
## 26.66364 19.74286 15.10000
mtcars$kpl <- mtcars$mpg * 0.425144
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb kpl
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 8.928024
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 8.928024
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 9.693283
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 9.098082
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 7.950193
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 7.695106
mtcars_order_hp <- mtcars[order(-mtcars$hp), ]
head(mtcars_order_hp, 10)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## kpl
## Maserati Bora 6.377160
## Ford Pantera L 6.717275
## Duster 360 6.079559
## Camaro Z28 5.654415
## Chrysler Imperial 6.249617
## Lincoln Continental 4.421498
## Cadillac Fleetwood 4.421498
## Merc 450SE 6.972362
## Merc 450SL 7.354991
## Merc 450SLC 6.462189
library(ggplot2)
ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
geom_point(size = 3) +
labs(x = "Peso (1000 lbs)", y = "Millas por galón",
color = "Cilindros") +
theme_minimal()
cor(mtcars)
## mpg cyl disp hp drat wt
## mpg 1.0000000 -0.8521620 -0.8475514 -0.7761684 0.68117191 -0.8676594
## cyl -0.8521620 1.0000000 0.9020329 0.8324475 -0.69993811 0.7824958
## disp -0.8475514 0.9020329 1.0000000 0.7909486 -0.71021393 0.8879799
## hp -0.7761684 0.8324475 0.7909486 1.0000000 -0.44875912 0.6587479
## drat 0.6811719 -0.6999381 -0.7102139 -0.4487591 1.00000000 -0.7124406
## wt -0.8676594 0.7824958 0.8879799 0.6587479 -0.71244065 1.0000000
## qsec 0.4186840 -0.5912421 -0.4336979 -0.7082234 0.09120476 -0.1747159
## vs 0.6640389 -0.8108118 -0.7104159 -0.7230967 0.44027846 -0.5549157
## am 0.5998324 -0.5226070 -0.5912270 -0.2432043 0.71271113 -0.6924953
## gear 0.4802848 -0.4926866 -0.5555692 -0.1257043 0.69961013 -0.5832870
## carb -0.5509251 0.5269883 0.3949769 0.7498125 -0.09078980 0.4276059
## kpl 1.0000000 -0.8521620 -0.8475514 -0.7761684 0.68117191 -0.8676594
## qsec vs am gear carb kpl
## mpg 0.41868403 0.6640389 0.59983243 0.4802848 -0.55092507 1.0000000
## cyl -0.59124207 -0.8108118 -0.52260705 -0.4926866 0.52698829 -0.8521620
## disp -0.43369788 -0.7104159 -0.59122704 -0.5555692 0.39497686 -0.8475514
## hp -0.70822339 -0.7230967 -0.24320426 -0.1257043 0.74981247 -0.7761684
## drat 0.09120476 0.4402785 0.71271113 0.6996101 -0.09078980 0.6811719
## wt -0.17471588 -0.5549157 -0.69249526 -0.5832870 0.42760594 -0.8676594
## qsec 1.00000000 0.7445354 -0.22986086 -0.2126822 -0.65624923 0.4186840
## vs 0.74453544 1.0000000 0.16834512 0.2060233 -0.56960714 0.6640389
## am -0.22986086 0.1683451 1.00000000 0.7940588 0.05753435 0.5998324
## gear -0.21268223 0.2060233 0.79405876 1.0000000 0.27407284 0.4802848
## carb -0.65624923 -0.5696071 0.05753435 0.2740728 1.00000000 -0.5509251
## kpl 0.41868403 0.6640389 0.59983243 0.4802848 -0.55092507 1.0000000
En el trabajo se pudo aplicar varios comandos para el manejo de data frames, esto ayuda a poder realizar de mejor manera los ejercicios.
El conjunto de ejercicios realizados sobre el dataset mtcars en R demuestra de manera integral la capacidad de manipular, explorar y resumir dataframes, lo cual es fundamental en el análisis exploratorio de datos (EDA). A través de la carga, el resumen estadístico, la selección de columnas, el filtrado condicional y la agregación de datos (cálculo de promedios por grupos), se lograron extraer información valiosa y específica del dataset. En esencia, se aplicaron las herramientas básicas pero poderosas de R para transformar datos brutos en estadísticas descriptivas accionables, permitiendo entender rápidamente la estructura del dataset, la distribución de sus variables clave (mpg, hp, cyl), y la relación entre ellas, como la eficiencia de combustible (mpg) en función del número de cilindros.