En este apartado se importan las librerías que se van a utilizar inicialmente, en este caso readr.
library(readr)
## Warning: package 'readr' was built under R version 4.3.3
En este apartado se manda llamar y se visualiza el dataset con el cual se va a trabajar, en este caso es el dataset de garcia_marin_bici_api.csv. Para efectos de visualización unicamente se muestras los primeros 50 registro, esto para poder mostrar como se van realizando los cambios unicamente.
# Carga los datos
Datosbici <- read.csv("C:/R/garcia_marin_bici_api.csv")
# Selecciona los primeros 50 registros
Datosbici_primeros_50 <- head(Datosbici, 50)
# Visualiza los primeros 50 registros
Datosbici_primeros_50
## acelero_z velocidad hum acelero_y giros_z acelero_x temp
## 1 16064 m/s^2 0.06 km/h 15.00 % 28 m/s^2 -23 rad/s 5088 m/s^2 30.80 °C
## 2 16084 m/s^2 0.11 km/h 15.00 % -20 m/s^2 -23 rad/s 5124 m/s^2 30.80 °C
## 3 16016 m/s^2 0.00 km/h 15.00 % -44 m/s^2 -28 rad/s 5152 m/s^2 31.30 °C
## 4 16064 m/s^2 0.00 km/h 15.00 % -104 m/s^2 -23 rad/s 5040 m/s^2 31.30 °C
## 5 16068 m/s^2 0.00 km/h 15.00 % -8 m/s^2 -31 rad/s 5132 m/s^2 31.30 °C
## 6 16728 m/s^2 0.00 km/h 15.00 % -108 m/s^2 -19 rad/s -768 m/s^2 31.80 °C
## 7 16740 m/s^2 0.00 km/h 15.00 % -184 m/s^2 -8 rad/s -860 m/s^2 31.80 °C
## 8 16640 m/s^2 0.00 km/h 15.00 % -132 m/s^2 -24 rad/s -844 m/s^2 31.80 °C
## 9 16764 m/s^2 0.00 km/h 15.00 % -236 m/s^2 -15 rad/s -656 m/s^2 31.80 °C
## 10 16708 m/s^2 0.00 km/h 15.00 % -88 m/s^2 -2 rad/s -756 m/s^2 31.80 °C
## 11 16624 m/s^2 0.00 km/h 15.00 % -104 m/s^2 -26 rad/s -724 m/s^2 31.80 °C
## 12 16676 m/s^2 0.00 km/h 15.00 % -120 m/s^2 -31 rad/s -752 m/s^2 31.80 °C
## 13 16712 m/s^2 0.00 km/h 15.00 % -96 m/s^2 -20 rad/s -756 m/s^2 31.80 °C
## 14 16724 m/s^2 0.00 km/h 15.00 % -28 m/s^2 -24 rad/s -708 m/s^2 31.60 °C
## 15 16784 m/s^2 0.00 km/h 15.00 % -116 m/s^2 -21 rad/s -648 m/s^2 31.40 °C
## 16 16652 m/s^2 0.00 km/h 15.00 % -160 m/s^2 -4 rad/s -732 m/s^2 31.30 °C
## 17 16632 m/s^2 0.00 km/h 15.00 % -224 m/s^2 -15 rad/s -792 m/s^2 31.30 °C
## 18 16700 m/s^2 0.07 km/h 15.00 % -188 m/s^2 -13 rad/s -740 m/s^2 31.30 °C
## 19 16856 m/s^2 0.07 km/h 15.00 % -236 m/s^2 -21 rad/s -708 m/s^2 31.30 °C
## 20 16740 m/s^2 0.04 km/h 16.00 % -392 m/s^2 -19 rad/s 160 m/s^2 28.50 °C
## 21 16528 m/s^2 0.04 km/h 16.00 % -340 m/s^2 -43 rad/s 244 m/s^2 28.90 °C
## 22 16504 m/s^2 0.00 km/h 17.00 % -436 m/s^2 -57 rad/s 76 m/s^2 26.20 °C
## 23 16572 m/s^2 0.00 km/h 17.00 % -472 m/s^2 -42 rad/s 76 m/s^2 26.20 °C
## 24 16644 m/s^2 0.00 km/h 17.00 % -492 m/s^2 -40 rad/s 72 m/s^2 26.20 °C
## 25 16564 m/s^2 0.00 km/h 17.00 % -52 m/s^2 -52 rad/s 184 m/s^2 26.20 °C
## 26 16672 m/s^2 0.00 km/h 17.00 % -192 m/s^2 -62 rad/s 332 m/s^2 26.70 °C
## 27 16572 m/s^2 0.00 km/h 17.00 % -116 m/s^2 -27 rad/s 260 m/s^2 26.70 °C
## 28 16628 m/s^2 0.00 km/h 17.00 % 0 m/s^2 -59 rad/s 236 m/s^2 26.70 °C
## 29 16752 m/s^2 0.00 km/h 17.00 % -64 m/s^2 -36 rad/s 196 m/s^2 26.70 °C
## 30 16688 m/s^2 0.00 km/h 17.00 % -68 m/s^2 -32 rad/s 348 m/s^2 26.70 °C
## 31 16676 m/s^2 0.00 km/h 17.00 % -88 m/s^2 -45 rad/s 308 m/s^2 26.70 °C
## 32 16668 m/s^2 0.00 km/h 17.00 % 12 m/s^2 -23 rad/s 280 m/s^2 26.70 °C
## 33 16676 m/s^2 0.00 km/h 17.00 % -124 m/s^2 -45 rad/s 232 m/s^2 26.70 °C
## 34 16496 m/s^2 0.00 km/h 17.00 % -144 m/s^2 -24 rad/s -1700 m/s^2 26.70 °C
## 35 16368 m/s^2 0.00 km/h 17.00 % -104 m/s^2 -67 rad/s -1668 m/s^2 26.70 °C
## 36 16460 m/s^2 0.00 km/h 17.00 % -408 m/s^2 -36 rad/s -1364 m/s^2 26.70 °C
## 37 16552 m/s^2 0.00 km/h 17.00 % -484 m/s^2 -40 rad/s -1364 m/s^2 26.70 °C
## 38 16460 m/s^2 0.00 km/h 17.00 % -788 m/s^2 -26 rad/s -1208 m/s^2 26.70 °C
## 39 16624 m/s^2 0.00 km/h 17.00 % -660 m/s^2 -40 rad/s -1072 m/s^2 26.70 °C
## 40 16572 m/s^2 0.00 km/h 17.00 % -820 m/s^2 -43 rad/s -1024 m/s^2 26.70 °C
## 41 16604 m/s^2 0.00 km/h 17.00 % -784 m/s^2 -57 rad/s -1112 m/s^2 26.70 °C
## 42 16532 m/s^2 0.00 km/h 17.00 % -772 m/s^2 -25 rad/s -1156 m/s^2 26.70 °C
## 43 16464 m/s^2 0.04 km/h 17.00 % -804 m/s^2 -37 rad/s -1172 m/s^2 26.70 °C
## 44 16528 m/s^2 0.04 km/h 17.00 % -860 m/s^2 -23 rad/s -1124 m/s^2 26.70 °C
## 45 16600 m/s^2 0.04 km/h 17.00 % -704 m/s^2 -34 rad/s -1140 m/s^2 26.70 °C
## 46 16696 m/s^2 0.04 km/h 17.00 % 824 m/s^2 -50 rad/s -108 m/s^2 26.70 °C
## 47 16688 m/s^2 0.04 km/h 51.00 % 820 m/s^2 -68 rad/s -128 m/s^2 28.00 °C
## 48 16700 m/s^2 0.04 km/h 71.00 % 780 m/s^2 -54 rad/s -68 m/s^2 28.90 °C
## 49 16796 m/s^2 0.19 km/h 95.00 % 792 m/s^2 -47 rad/s -92 m/s^2 29.40 °C
## 50 16616 m/s^2 0.19 km/h 34.00 % 820 m/s^2 -30 rad/s -88 m/s^2 28.50 °C
## giros_x
## 1 2282 rad/s
## 2 2261 rad/s
## 3 2269 rad/s
## 4 2261 rad/s
## 5 2276 rad/s
## 6 2248 rad/s
## 7 2275 rad/s
## 8 2274 rad/s
## 9 2270 rad/s
## 10 2255 rad/s
## 11 2261 rad/s
## 12 2268 rad/s
## 13 2257 rad/s
## 14 2273 rad/s
## 15 2288 rad/s
## 16 2284 rad/s
## 17 2241 rad/s
## 18 2252 rad/s
## 19 2259 rad/s
## 20 2308 rad/s
## 21 2265 rad/s
## 22 2318 rad/s
## 23 2302 rad/s
## 24 2283 rad/s
## 25 2282 rad/s
## 26 2307 rad/s
## 27 2331 rad/s
## 28 2293 rad/s
## 29 2288 rad/s
## 30 2291 rad/s
## 31 2288 rad/s
## 32 2271 rad/s
## 33 2273 rad/s
## 34 2295 rad/s
## 35 2292 rad/s
## 36 2296 rad/s
## 37 2291 rad/s
## 38 2272 rad/s
## 39 2282 rad/s
## 40 2286 rad/s
## 41 2279 rad/s
## 42 2277 rad/s
## 43 2268 rad/s
## 44 2322 rad/s
## 45 2296 rad/s
## 46 2292 rad/s
## 47 2275 rad/s
## 48 2265 rad/s
## 49 2285 rad/s
## 50 2265 rad/s
## displayName
## 1 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 2 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 3 Soul Buoy
## 4 Soul Buoy
## 5 Soul Buoy
## 6 Soul Buoy
## 7 Soul Buoy
## 8 Soul Buoy
## 9 Soul Buoy
## 10 Soul Buoy
## 11 Soul Buoy
## 12 Soul Buoy
## 13 Soul Buoy
## 14 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 15 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 16 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 17 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 18 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 19 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 20 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 21 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 22 Soul Buoy
## 23 Soul Buoy
## 24 Soul Buoy
## 25 Soul Buoy
## 26 Soul Buoy
## 27 Soul Buoy
## 28 Soul Buoy
## 29 Soul Buoy
## 30 Soul Buoy
## 31 Soul Buoy
## 32 Soul Buoy
## 33 Soul Buoy
## 34 Soul Buoy
## 35 Soul Buoy
## 36 Soul Buoy
## 37 Soul Buoy
## 38 Soul Buoy
## 39 Soul Buoy
## 40 Soul Buoy
## 41 Soul Buoy
## 42 Soul Buoy
## 43 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 44 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 45 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 46 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 47 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 48 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 49 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## 50 Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México
## giros_y altitud fecha latitud longitud
## 1 -132 rad/s 1888.80 m 2024-05-01 15:40:54 NA NA
## 2 -105 rad/s 1888.80 m 2024-05-01 15:41:18 NA NA
## 3 -115 rad/s 0.00 m 2024-05-01 15:43:34 NA NA
## 4 -96 rad/s 0.00 m 2024-05-01 15:43:58 NA NA
## 5 -133 rad/s 0.00 m 2024-05-01 15:44:22 NA NA
## 6 -118 rad/s 0.00 m 2024-05-01 16:35:29 NA NA
## 7 -105 rad/s 0.00 m 2024-05-01 16:35:55 NA NA
## 8 -123 rad/s 0.00 m 2024-05-01 16:36:19 NA NA
## 9 -131 rad/s 0.00 m 2024-05-01 16:36:44 NA NA
## 10 -114 rad/s 0.00 m 2024-05-01 16:37:08 NA NA
## 11 -115 rad/s 0.00 m 2024-05-01 16:37:34 NA NA
## 12 -122 rad/s 0.00 m 2024-05-01 16:37:58 NA NA
## 13 -101 rad/s 0.00 m 2024-05-01 16:38:22 NA NA
## 14 -118 rad/s 0.00 m 2024-05-01 16:39:10 NA NA
## 15 -115 rad/s 0.00 m 2024-05-01 16:39:34 NA NA
## 16 -112 rad/s 1895.50 m 2024-05-01 16:39:58 NA NA
## 17 -115 rad/s 1895.50 m 2024-05-01 16:40:22 NA NA
## 18 -94 rad/s 1895.50 m 2024-05-01 16:40:46 25.00000 30.0000
## 19 -125 rad/s 1895.50 m 2024-05-01 16:41:10 NA NA
## 20 -92 rad/s 0.00 m 2024-05-07 18:35:17 24.60459 -103.9269
## 21 -140 rad/s 0.00 m 2024-05-07 18:36:28 24.60459 -103.9269
## 22 -140 rad/s 0.00 m 2024-05-07 23:33:43 0.00000 0.0000
## 23 -140 rad/s 0.00 m 2024-05-07 23:34:50 0.00000 0.0000
## 24 -136 rad/s 0.00 m 2024-05-07 23:35:55 0.00000 0.0000
## 25 -126 rad/s 0.00 m 2024-05-07 23:37:01 0.00000 0.0000
## 26 -142 rad/s 0.00 m 2024-05-07 23:38:05 0.00000 0.0000
## 27 -206 rad/s 0.00 m 2024-05-07 23:39:13 0.00000 0.0000
## 28 -135 rad/s 0.00 m 2024-05-07 23:40:20 0.00000 0.0000
## 29 -78 rad/s 0.00 m 2024-05-07 23:41:24 0.00000 0.0000
## 30 -128 rad/s 0.00 m 2024-05-07 23:42:29 0.00000 0.0000
## 31 -114 rad/s 0.00 m 2024-05-07 23:43:33 0.00000 0.0000
## 32 -150 rad/s 0.00 m 2024-05-07 23:45:05 0.00000 0.0000
## 33 -111 rad/s 0.00 m 2024-05-07 23:46:10 0.00000 0.0000
## 34 -75 rad/s 0.00 m 2024-05-07 23:47:14 0.00000 0.0000
## 35 -105 rad/s 0.00 m 2024-05-07 23:48:18 0.00000 0.0000
## 36 -131 rad/s 0.00 m 2024-05-07 23:49:25 0.00000 0.0000
## 37 -133 rad/s 0.00 m 2024-05-07 23:50:30 0.00000 0.0000
## 38 -97 rad/s 0.00 m 2024-05-07 23:51:37 0.00000 0.0000
## 39 -142 rad/s 0.00 m 2024-05-07 23:52:41 0.00000 0.0000
## 40 -115 rad/s 0.00 m 2024-05-07 23:53:46 0.00000 0.0000
## 41 -115 rad/s 0.00 m 2024-05-07 23:54:50 0.00000 0.0000
## 42 -118 rad/s 0.00 m 2024-05-07 23:55:57 0.00000 0.0000
## 43 -160 rad/s 0.00 m 2024-05-07 23:57:05 24.60456 -103.9269
## 44 -56 rad/s 0.00 m 2024-05-07 23:58:09 24.60456 -103.9269
## 45 -151 rad/s 1875.30 m 2024-05-07 23:59:13 24.60456 -103.9269
## 46 -114 rad/s 1875.30 m 2024-05-08 00:00:18 24.60456 -103.9269
## 47 -170 rad/s 1875.30 m 2024-05-08 00:01:22 24.60456 -103.9269
## 48 -112 rad/s 1875.30 m 2024-05-08 00:02:29 24.60456 -103.9269
## 49 -123 rad/s 1875.30 m 2024-05-08 00:03:34 24.60455 -103.9269
## 50 -106 rad/s 1875.30 m 2024-05-08 00:04:39 24.60455 -103.9269
En este apartado se cuentan los datos que se encuentren nulos en el dataset, para este caso existen datos nulos en la columna de altitud y longitud por lo que se procede a eliminarlos, además existen datos con la ubicación incorrectos, dichos datos se envían mientras el sensor GPS agarra señal, es por ello que la limpieza que haremos será propiamente de esos datos, es decir eliminaremos los registros que en el displayName, es decir la ubicación tengan la frase “Soul Buoy”. Existen de igual forma datos vacíos en el displayName (ubicación) por lo que también se eliminan. De igual manera, se eliminan los registros que tengan datos con altitud en ceros. Y se reemplazan los lugares por nombres más cortos para su mejor visualización. Por último unicamente, se cuentan e imprimen el total de registros que se obtienen después de realiza toda esta limpieza de datos.
#Cuenta los valores que son nulos
sum(is.na(Datosbici$latitud))
## [1] 18
sum(is.na(Datosbici$hum))
## [1] 0
sum(is.na(Datosbici$longitud))
## [1] 18
sum(is.na(Datosbici$giros_y))
## [1] 0
sum(is.na(Datosbici$giros_z))
## [1] 0
sum(is.na(Datosbici$acelero_z))
## [1] 0
sum(is.na(Datosbici$acelero_y))
## [1] 0
sum(is.na(Datosbici$velocidad))
## [1] 0
sum(is.na(Datosbici$acelero_x))
## [1] 0
sum(is.na(Datosbici$altitud))
## [1] 0
sum(is.na(Datosbici$giros_x))
## [1] 0
sum(is.na(Datosbici$displayName))
## [1] 0
sum(is.na(Datosbici$temp))
## [1] 0
sum(is.na(Datosbici$fecha))
## [1] 0
Datosbici = Datosbici[is.na(Datosbici$latitud) == FALSE, ] #quitar los NA´S
#los vuelvo a contar y ya deben de ser Cero NA´S
sum(is.na(Datosbici$latitud))
## [1] 0
Datosbici = Datosbici[is.na(Datosbici$longitud) == FALSE, ] #quitar los NA´S
#los vuelvo a contar y ya deben de ser Cero NA´S
sum(is.na(Datosbici$longitud))
## [1] 0
#Limpieza de los datos.
Datosbici <- Datosbici[!apply(Datosbici == "Soul Buoy", 1, any), ] # Eliminar registros que tengan "Soul Buoy"
# Verificar que se han eliminado los registros
sum(apply(Datosbici == "Soul Buoy", 1, any))
## [1] 0
# Eliminar filas con valores NA en la columna 'displayName'
Datosbici <- Datosbici[!is.na(Datosbici$displayName), ]
# Eliminar filas con valores en blanco en la columna 'latitud'
Datosbici <- Datosbici[Datosbici$displayName != "", ]
# Contar los valores NA en la columna 'latitud' para verificar que no haya más
sum(is.na(Datosbici$displayName))
## [1] 0
# Contar los valores en blanco en la columna 'latitud' para verificar que no haya más
sum(Datosbici$displayName == "")
## [1] 0
# Eliminar filas con valores de 0.00 en la columna 'altitud'
Datosbici <- Datosbici[Datosbici$altitud != "0.00 m", ]
sum(Datosbici$altitud == 0.00)
## [1] 0
#Reemplazo lon nombres de los lugares por valores cortos
Datosbici$displayName[Datosbici$displayName == "Calle Zaragoza, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Avenida Zaragoza"
Datosbici$displayName[Datosbici$displayName == "Calle Bruno Martínez, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Calle Bruno Mtz"
Datosbici$displayName[Datosbici$displayName == "Calle Allende, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Calle Allende"
Datosbici$displayName[Datosbici$displayName == "Calle Hidalgo, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Avenida Hidalgo"
Datosbici$displayName[Datosbici$displayName == "Calle José María Pino Suárez, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Avenida Pino Suárez"
Datosbici$displayName[Datosbici$displayName == "Calle Independencia, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Calle Independencia"
Datosbici$displayName[Datosbici$displayName == "Calle Alberto M. Alvarado, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Avenida Alberto M."
Datosbici$displayName[Datosbici$displayName == "Calle 5 de Mayo, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Calle 5 de Mayo"
Datosbici$displayName[Datosbici$displayName == "Avenida Morelos, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Avenida Morales"
Datosbici$displayName[Datosbici$displayName == "رقان, Daïra de Reggane, Adrar, 01200, Algérie ⵍⵣⵣⴰⵢⴻⵔ الجزائر"]= "Calle 20 de Noviembre"
Datosbici$displayName[Datosbici$displayName == "Avenida Constitución, General Jesús Agustín Castro, Peñón Blanco, Durango, México"]= "Avenida Constitución"
#View(Datosbici)
# Selecciona los primeros 20 registros
Datosbici_primeros_50 <- head(Datosbici, 50)
# Visualiza los primeros 20 registros
Datosbici_primeros_50
## acelero_z velocidad hum acelero_y giros_z acelero_x temp
## 18 16700 m/s^2 0.07 km/h 15.00 % -188 m/s^2 -13 rad/s -740 m/s^2 31.30 °C
## 45 16600 m/s^2 0.04 km/h 17.00 % -704 m/s^2 -34 rad/s -1140 m/s^2 26.70 °C
## 46 16696 m/s^2 0.04 km/h 17.00 % 824 m/s^2 -50 rad/s -108 m/s^2 26.70 °C
## 47 16688 m/s^2 0.04 km/h 51.00 % 820 m/s^2 -68 rad/s -128 m/s^2 28.00 °C
## 48 16700 m/s^2 0.04 km/h 71.00 % 780 m/s^2 -54 rad/s -68 m/s^2 28.90 °C
## 49 16796 m/s^2 0.19 km/h 95.00 % 792 m/s^2 -47 rad/s -92 m/s^2 29.40 °C
## 50 16616 m/s^2 0.19 km/h 34.00 % 820 m/s^2 -30 rad/s -88 m/s^2 28.50 °C
## 51 16528 m/s^2 0.19 km/h 22.00 % 924 m/s^2 -39 rad/s -56 m/s^2 28.50 °C
## 61 16600 m/s^2 0.00 km/h 16.00 % 340 m/s^2 -43 rad/s -712 m/s^2 29.30 °C
## 62 18496 m/s^2 0.07 km/h 16.00 % 968 m/s^2 -1469 rad/s 4908 m/s^2 29.40 °C
## 63 14388 m/s^2 0.07 km/h 16.00 % -864 m/s^2 7081 rad/s -6964 m/s^2 29.30 °C
## 64 16528 m/s^2 0.07 km/h 16.00 % 120 m/s^2 -41 rad/s -416 m/s^2 29.30 °C
## 65 16604 m/s^2 0.07 km/h 16.00 % 204 m/s^2 -26 rad/s -540 m/s^2 29.30 °C
## 66 16808 m/s^2 0.07 km/h 31.00 % 224 m/s^2 -43 rad/s -512 m/s^2 29.80 °C
## 91 16680 m/s^2 0.15 km/h 15.00 % 12 m/s^2 -23 rad/s -1188 m/s^2 31.30 °C
## 92 16676 m/s^2 0.15 km/h 15.00 % 68 m/s^2 -20 rad/s -1068 m/s^2 31.30 °C
## 93 16800 m/s^2 0.15 km/h 15.00 % -24 m/s^2 -13 rad/s -1132 m/s^2 31.30 °C
## 94 16700 m/s^2 0.13 km/h 15.00 % 168 m/s^2 -12 rad/s -1020 m/s^2 31.30 °C
## 95 16792 m/s^2 0.13 km/h 15.00 % 172 m/s^2 -1 rad/s -976 m/s^2 31.30 °C
## 96 16708 m/s^2 0.07 km/h 15.00 % 108 m/s^2 -19 rad/s -1104 m/s^2 31.30 °C
## 97 16624 m/s^2 0.07 km/h 15.00 % -24 m/s^2 -29 rad/s -1224 m/s^2 31.20 °C
## 98 16568 m/s^2 0.07 km/h 15.00 % 156 m/s^2 -36 rad/s -1212 m/s^2 31.30 °C
## 99 16740 m/s^2 0.07 km/h 15.00 % 20 m/s^2 -31 rad/s -1216 m/s^2 30.80 °C
## 100 16600 m/s^2 0.07 km/h 15.00 % 108 m/s^2 -3 rad/s -1204 m/s^2 30.80 °C
## 101 16704 m/s^2 0.07 km/h 15.00 % -128 m/s^2 -10 rad/s -1192 m/s^2 30.80 °C
## 102 16724 m/s^2 0.15 km/h 15.00 % -132 m/s^2 -26 rad/s -1080 m/s^2 30.80 °C
## 103 16724 m/s^2 0.15 km/h 15.00 % -140 m/s^2 -26 rad/s -1052 m/s^2 30.80 °C
## 104 16528 m/s^2 0.33 km/h 15.00 % -136 m/s^2 -36 rad/s -1068 m/s^2 30.80 °C
## 105 16656 m/s^2 0.33 km/h 15.00 % -96 m/s^2 -13 rad/s -1088 m/s^2 30.80 °C
## 106 16612 m/s^2 0.33 km/h 15.00 % -212 m/s^2 -38 rad/s -1160 m/s^2 30.80 °C
## 107 16668 m/s^2 0.33 km/h 15.00 % -76 m/s^2 7 rad/s -1172 m/s^2 30.80 °C
## 108 16668 m/s^2 0.11 km/h 15.00 % -52 m/s^2 -29 rad/s -1168 m/s^2 30.20 °C
## 109 16648 m/s^2 0.11 km/h 15.00 % -72 m/s^2 -7 rad/s -1028 m/s^2 30.20 °C
## 110 16760 m/s^2 0.07 km/h 15.00 % -36 m/s^2 -26 rad/s -1124 m/s^2 30.20 °C
## 111 16528 m/s^2 0.07 km/h 15.00 % -108 m/s^2 -19 rad/s -1216 m/s^2 30.20 °C
## 112 16864 m/s^2 0.07 km/h 15.00 % -176 m/s^2 -1 rad/s -1116 m/s^2 30.20 °C
## 113 16736 m/s^2 0.09 km/h 15.00 % -92 m/s^2 -49 rad/s -1160 m/s^2 30.20 °C
## 114 16788 m/s^2 0.09 km/h 15.00 % -76 m/s^2 -24 rad/s -1112 m/s^2 30.20 °C
## 115 16764 m/s^2 0.09 km/h 15.00 % -196 m/s^2 -20 rad/s -1120 m/s^2 30.20 °C
## 116 16512 m/s^2 0.09 km/h 15.00 % -92 m/s^2 -16 rad/s -1060 m/s^2 30.70 °C
## 117 16892 m/s^2 0.13 km/h 15.00 % -76 m/s^2 -12 rad/s -1128 m/s^2 30.80 °C
## 118 16584 m/s^2 0.13 km/h 15.00 % -80 m/s^2 -13 rad/s -948 m/s^2 30.80 °C
## 119 16572 m/s^2 0.78 km/h 15.00 % -200 m/s^2 -15 rad/s -1140 m/s^2 30.80 °C
## 142 8620 m/s^2 8.19 km/h 17.00 % -5688 m/s^2 -1385 rad/s -2744 m/s^2 24.50 °C
## 143 12092 m/s^2 8.19 km/h 17.00 % -532 m/s^2 -317 rad/s 7216 m/s^2 24.10 °C
## 144 16372 m/s^2 8.19 km/h 17.00 % -1832 m/s^2 2024 rad/s 1576 m/s^2 24.10 °C
## 145 16684 m/s^2 8.19 km/h 17.00 % -1528 m/s^2 277 rad/s -5796 m/s^2 24.10 °C
## 146 19168 m/s^2 8.19 km/h 17.00 % -276 m/s^2 -7972 rad/s -3676 m/s^2 24.10 °C
## 147 20384 m/s^2 8.19 km/h 17.00 % 1548 m/s^2 2778 rad/s -11072 m/s^2 24.10 °C
## 148 15284 m/s^2 7.04 km/h 17.00 % 1312 m/s^2 -641 rad/s 1160 m/s^2 24.10 °C
## giros_x displayName giros_y altitud fecha
## 18 2252 rad/s Avenida Zaragoza -94 rad/s 1895.50 m 2024-05-01 16:40:46
## 45 2296 rad/s Avenida Zaragoza -151 rad/s 1875.30 m 2024-05-07 23:59:13
## 46 2292 rad/s Avenida Zaragoza -114 rad/s 1875.30 m 2024-05-08 00:00:18
## 47 2275 rad/s Avenida Zaragoza -170 rad/s 1875.30 m 2024-05-08 00:01:22
## 48 2265 rad/s Avenida Zaragoza -112 rad/s 1875.30 m 2024-05-08 00:02:29
## 49 2285 rad/s Avenida Zaragoza -123 rad/s 1875.30 m 2024-05-08 00:03:34
## 50 2265 rad/s Avenida Zaragoza -106 rad/s 1875.30 m 2024-05-08 00:04:39
## 51 2259 rad/s Avenida Zaragoza -94 rad/s 1875.30 m 2024-05-08 00:05:44
## 61 2242 rad/s Avenida Zaragoza -120 rad/s 1875.80 m 2024-05-08 19:39:44
## 62 4467 rad/s Avenida Zaragoza 1141 rad/s 1875.80 m 2024-05-08 19:40:56
## 63 1598 rad/s Avenida Zaragoza 1284 rad/s 1875.80 m 2024-05-08 19:42:02
## 64 2239 rad/s Avenida Zaragoza -136 rad/s 1867.40 m 2024-05-08 19:43:07
## 65 2289 rad/s Avenida Zaragoza -115 rad/s 1867.40 m 2024-05-08 19:44:12
## 66 2280 rad/s Avenida Zaragoza -107 rad/s 1867.40 m 2024-05-08 19:45:18
## 91 2269 rad/s Avenida Zaragoza -101 rad/s 1877.90 m 2024-05-13 19:16:44
## 92 2280 rad/s Avenida Zaragoza -102 rad/s 1877.90 m 2024-05-13 19:17:53
## 93 2267 rad/s Avenida Zaragoza -134 rad/s 1877.90 m 2024-05-13 19:19:05
## 94 2294 rad/s Avenida Zaragoza -114 rad/s 1877.90 m 2024-05-13 19:20:14
## 95 2244 rad/s Avenida Zaragoza -157 rad/s 1877.90 m 2024-05-13 19:21:27
## 96 2251 rad/s Avenida Zaragoza -143 rad/s 1877.90 m 2024-05-13 19:22:36
## 97 2283 rad/s Avenida Zaragoza -120 rad/s 1877.90 m 2024-05-13 19:23:45
## 98 2269 rad/s Avenida Zaragoza -105 rad/s 1877.90 m 2024-05-13 19:24:55
## 99 2261 rad/s Avenida Zaragoza -123 rad/s 1877.90 m 2024-05-13 19:26:04
## 100 2254 rad/s Avenida Zaragoza -130 rad/s 1877.90 m 2024-05-13 19:27:13
## 101 2255 rad/s Avenida Zaragoza -117 rad/s 1877.90 m 2024-05-13 19:28:23
## 102 2264 rad/s Avenida Zaragoza -114 rad/s 1877.90 m 2024-05-13 19:29:32
## 103 2262 rad/s Avenida Zaragoza -110 rad/s 1877.90 m 2024-05-13 19:30:41
## 104 2254 rad/s Avenida Zaragoza -126 rad/s 1877.90 m 2024-05-13 19:31:50
## 105 2250 rad/s Avenida Zaragoza -113 rad/s 1877.90 m 2024-05-13 19:32:59
## 106 2272 rad/s Avenida Zaragoza -110 rad/s 1882.60 m 2024-05-13 19:34:08
## 107 2270 rad/s Avenida Zaragoza -103 rad/s 1882.60 m 2024-05-13 19:35:17
## 108 2276 rad/s Avenida Zaragoza -95 rad/s 1882.60 m 2024-05-13 19:36:26
## 109 2292 rad/s Avenida Zaragoza -116 rad/s 1882.60 m 2024-05-13 19:37:36
## 110 2270 rad/s Avenida Zaragoza -97 rad/s 1882.60 m 2024-05-13 19:38:46
## 111 2261 rad/s Avenida Zaragoza -110 rad/s 1882.60 m 2024-05-13 19:39:56
## 112 2276 rad/s Avenida Zaragoza -65 rad/s 1882.60 m 2024-05-13 19:41:04
## 113 2268 rad/s Avenida Zaragoza -108 rad/s 1882.60 m 2024-05-13 19:42:13
## 114 2257 rad/s Avenida Zaragoza -112 rad/s 1882.60 m 2024-05-13 19:43:22
## 115 2263 rad/s Avenida Zaragoza -126 rad/s 1882.60 m 2024-05-13 19:44:31
## 116 2240 rad/s Avenida Zaragoza -104 rad/s 1882.60 m 2024-05-13 19:45:40
## 117 2241 rad/s Avenida Zaragoza -94 rad/s 1882.60 m 2024-05-13 19:46:51
## 118 2242 rad/s Avenida Zaragoza -111 rad/s 1882.60 m 2024-05-13 19:48:01
## 119 2234 rad/s Avenida Zaragoza -131 rad/s 1882.60 m 2024-05-13 19:49:11
## 142 -1337 rad/s Calle Bruno Mtz 1663 rad/s 1874.20 m 2024-05-13 20:20:12
## 143 1427 rad/s Calle Bruno Mtz 1217 rad/s 1874.20 m 2024-05-13 20:21:21
## 144 2334 rad/s Calle Bruno Mtz -467 rad/s 1874.20 m 2024-05-13 20:22:29
## 145 2971 rad/s Calle Bruno Mtz -636 rad/s 1874.20 m 2024-05-13 20:23:39
## 146 6346 rad/s Calle Bruno Mtz -953 rad/s 1874.20 m 2024-05-13 20:24:48
## 147 926 rad/s Calle Bruno Mtz 3683 rad/s 1874.20 m 2024-05-13 20:25:57
## 148 2074 rad/s Calle Independencia 391 rad/s 1874.20 m 2024-05-13 20:27:06
## latitud longitud
## 18 25.00000 30.0000
## 45 24.60456 -103.9269
## 46 24.60456 -103.9269
## 47 24.60456 -103.9269
## 48 24.60456 -103.9269
## 49 24.60455 -103.9269
## 50 24.60455 -103.9269
## 51 24.60455 -103.9269
## 61 24.60456 -103.9269
## 62 24.60460 -103.9268
## 63 24.60460 -103.9268
## 64 24.60460 -103.9268
## 65 24.60460 -103.9268
## 66 24.60460 -103.9268
## 91 24.60456 -103.9269
## 92 24.60456 -103.9269
## 93 24.60456 -103.9269
## 94 24.60456 -103.9269
## 95 24.60456 -103.9269
## 96 24.60455 -103.9269
## 97 24.60455 -103.9269
## 98 24.60455 -103.9269
## 99 24.60455 -103.9269
## 100 24.60455 -103.9269
## 101 24.60455 -103.9269
## 102 24.60455 -103.9269
## 103 24.60455 -103.9269
## 104 24.60455 -103.9269
## 105 24.60455 -103.9269
## 106 24.60455 -103.9269
## 107 24.60455 -103.9269
## 108 24.60457 -103.9269
## 109 24.60457 -103.9269
## 110 24.60456 -103.9269
## 111 24.60456 -103.9269
## 112 24.60456 -103.9269
## 113 24.60456 -103.9269
## 114 24.60456 -103.9269
## 115 24.60456 -103.9269
## 116 24.60456 -103.9269
## 117 24.60455 -103.9269
## 118 24.60455 -103.9269
## 119 24.60456 -103.9269
## 142 24.60489 -103.9258
## 143 24.60489 -103.9258
## 144 24.60489 -103.9258
## 145 24.60489 -103.9258
## 146 24.60489 -103.9258
## 147 24.60489 -103.9258
## 148 24.60753 -103.9260
# Contar el total de registros finales en el dataframe 'Datosbici'
total_registros <- nrow(Datosbici)
# Imprimir el total de registros
print(total_registros)
## [1] 10296
A continuación, se procede a la creación de una gráfica de barras por medio de la cual se pueden visualizar las temperaturas de las cuales se tiene un mayor registro, es decir de las temperaturas o climas donde el ciclista realiza más recorridos, para este caso, se detectó que las temperaturas con más frecuencia son 33.8°C, 34.2°C y 35.2°C*.
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.3
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
frecuencia_temperaturas <- Datosbici %>%
group_by(temp) %>%
summarise(frecuencia = n())
gg <- ggplot(frecuencia_temperaturas, aes(x = temp, y = frecuencia)) +
geom_bar(stat = "identity", fill = "blue") +
labs(title = "Frecuencia de Temperaturas",
x = "Temperatura",
y = "Frecuencia") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))
fig <- ggplotly(gg)
fig
A continuación se procede a la creacion de una gráfica de barras por medio de la cual se pueden visualizar la humedad con mayor frecuencia, es decir los registros de humedad en los cuales el ciclista realiza más recorridos, para este caso, se detectó que los datos de humedad con más frecuencia son 13%, 14% y 15%*.
library(plotly)
library(ggplot2)
library(dplyr)
frecuencia_humedad <- Datosbici %>%
group_by(hum) %>%
summarise(frecuencia = n())
gg <- ggplot(frecuencia_humedad, aes(x = hum, y = frecuencia)) +
geom_bar(stat = "identity", fill = "brown") +
labs(title = "Frecuencia de Humedad",
x = "Humedad",
y = "Frecuencia") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5))
fig <- ggplotly(gg)
fig
En este apartado se creó un gráfico de dispersión para poder crear un gráfico más visible donde se pueda observar los datos de temperatura y humedad con mayor frecuencia y poder así visualizar de una mejor manera los climas en los que mayormente viaja el ciclista y la relación entre estos dos valores. Detectando con esto que las los climas más frecuentes son con una temperatura entre 30° y 35° y una humedad entre 5% y 20%.
library(ggplot2)
# Convertir las columnas 'temp' y 'hum' a formato numérico si no lo están ya
Datosbici$temp <- as.numeric(gsub(" °C", "", Datosbici$temp))
Datosbici$hum <- as.numeric(gsub(" %", "", Datosbici$hum))
# Crear el gráfico de dispersión
ggplot(Datosbici, aes(x = temp, y = hum)) +
geom_point(color = "orange") +
labs(title = "Relación de Temperatura y Humedad",
x = "Temperature (°C)",
y = "Humidity (%)") +
theme_minimal()
A continuación, se procede a la creación de una gráfica de relieve por medio de la cual se pueden comparar los datos del acelerómetro y giroscopio en x, y, z, para poder visualizar en un gráfico 3D el comportamiento de movimiento que tuvo el dispositivo. Mediante la cual se puede decir que el dispositivo siempre estaba un movimiento, aunque fuera muy mínimo, pero si reporta movimiento en sus ejes. En su mayoría se tienen intervalos en los cuales se tiene un movimiento constante tanto para el acelerómetro como el giroscopio, pero en algunos lapsos de tiempo el movimiento del giroscopio aumenta de manera rápida o tiende a bajar de igual manera. Por parte de la aceleración de igual forma se tiene un movimiento constante pero en algún punto incrementa de manera proporcional y después baja de manera rápida.
library(plotly)
fig <- plot_ly(
data = Datosbici,
type = 'surface',
z = ~acelero_z,
x = ~acelero_x,
y = ~acelero_y,
colorscale = list(
c(0, 'pink'),
c(0.5, 'white'),
c(1, 'blue')
),
showscale = FALSE,
name = 'Acelerometro'
)
fig <- fig %>% add_trace(
z = ~giros_z,
x = ~giros_x,
y = ~giros_y,
surfacecolor = ~giros_z,
colorscale = list(
c(0, 'pink'),
c(0.5, 'white'),
c(1, 'blue')
),
showscale = FALSE,
name = 'Giroscopio'
)
fig <- fig %>% layout(
title = 'Gráfico 3D de Acelerómetro y Giroscopio (Relieve)',
scene = list(
xaxis = list(title = 'EJE X'),
yaxis = list(title = 'EJE Y'),
zaxis = list(title = 'EJE Z')
)
)
fig
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
En esta gráfica de barras de las velocidades se pueden visualizar las velocidades que llevaba el ciclista según la fecha, con ello se puede visualizar a qué velocidad viajaba más el ciclista. Mediante la cual se puede detectar que la velocidad que más se viajó fue de 0.04Km/h, 0.07Km/h y 0.06Km/h y la velocidad más alta registrada fue de 13.26km/h.
library(plotly)
library(dplyr)
frecuencia_velocidades <- Datosbici %>%
group_by(velocidad) %>%
summarise(frecuencia = n())
fig <- plot_ly(frecuencia_velocidades, x = ~velocidad, y = ~frecuencia, type = 'bar', marker = list(color = 'blue')) %>%
layout(title = "Frecuencia de Velocidades",
xaxis = list(title = "Velocidad"),
yaxis = list(title = "Frecuencia"),
barmode = 'group',
showlegend = FALSE)
fig
En esta gráfica se tienen los lugares más visitados en los registros del ciclista donde se pueden visualizar los datos lugares o calles que más visitó, normalmemte hacia recorridos en zona centro del poblado. Mediante la cual se puede analizar que la calle o el lugar más visitado es Avenida Zaragoza.
library(ggplot2)
library(dplyr)
frecuencia_lugares <- Datosbici %>%
group_by(displayName) %>%
summarise(frecuencia = n())
ggplot(frecuencia_lugares, aes(x = displayName, y = frecuencia)) +
geom_bar(stat = "identity", fill = "purple") +
labs(title = "Frecuencia de Visitas a Lugares",
x = "Lugar",
y = "Frecuencia de Visitas") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
En esta gráfica se tienen los valores del acelerómetro y giroscopio pero unicamente en el eje Y, ya que por la posición del sensor en el dispositivo, este es el eje que lleva el frente de la bicicleta y con ello se puede visualizar que el comportamiento que normalmente tiene la bicicleta es que tiende a estar en movimiento constante y solo en algunos lapsos de tiempo se mueve un poco, pero normalmente su movimiento es constante.
library(plotly)
Datosbici$index <- seq_len(nrow(Datosbici))
fig <- plot_ly() %>%
add_trace(data = Datosbici, x = ~index, y = ~acelero_y, z = ~giros_y,
type = 'scatter3d', mode = 'markers', name = 'Acelerómetro',
marker = list(color = 'blue')) %>%
add_trace(data = Datosbici, x = ~index, y = ~giros_y, z = ~rep(1, nrow(Datosbici)),
type = 'scatter3d', mode = 'markers', name = 'Giroscopio',
marker = list(color = 'red')) %>%
layout(title = "Comportamiento del Acelerómetro y Giroscopio en el Eje Y",
scene = list(xaxis = list(title = 'Índice de Tiempo'),
yaxis = list(title = 'Acelerómetro Y'),
zaxis = list(title = 'Giroscopio Y')))
fig
En esta gráfica se tienen la frecuencia de horas en las que más realiza sus recorridos el ciclista, donde se puede observar claramente que las horas en las que hay mayor actividad es entre las 7:00, 8:00 y 9:00 de la noche.. Esto muy probablemente por el clima, ya que es a dichas horas cuando el clima puede estar un poco más favorable para permitir un mejor recorrido al ciclista.
library(plotly)
library(dplyr)
if ('fecha' %in% colnames(Datosbici)) {
Datosbici$fecha <- as.POSIXct(Datosbici$fecha)
Datosbici$hora <- format(Datosbici$fecha, "%H")
frecuencia_horas <- Datosbici %>%
group_by(hora) %>%
summarise(frecuencia = n())
fig <- plot_ly(frecuencia_horas, x = ~hora, y = ~frecuencia, type = 'bar', marker = list(color = 'green')) %>%
layout(title = "Frecuencia de Recorrido por Hora del Día",
xaxis = list(title = "Hora del Día"),
yaxis = list(title = "Frecuencia de Recorrido"),
barmode = 'group',
showlegend = FALSE)
fig
}
Según la visualización gráfica de los datos que se obtuvieron mediante el dispositivo de Internet de las Cosas SmartBike, se pueden visualizar claramente que la calle o el lugar donde más pasaba tiempo el ciclista es en la Avenida Zaragoza, teniendo una velocidad relativamente baja durante su recorrido, y visitando climas que normalmente eran cálidos, entre 30 y 35 grados celsius de temperatura, mostrando que el dispositivo detectó que la velocidad y el ritmo de movimientos de la bicicleta era muy normal, con algunos movimientos y aceleraciones en algunos lapsos de tiempo alcanzando como velocidad máxima 13.26Km/h. De igual manera se analizan un sin fin de datos relevantes con los datos recabados, mostrando en las gráficas anteriores.