Importación de Librerías

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

Visualización de dataset

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

Limpieza de Datos del Dataset

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

Creación de un Gráfico de barras para visualizar las Temperaturas con mayor Frecuencia.

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

Creación de un Gráfico de barras para visualizar la Humedad con Mayor Frecuencia.

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

Creación de un Gráfico de dispersión para la visualización de Datos del Clima

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()

Creación de un Gráfico en 3D o relieve para comparar los valores del movimiento de la Bicicleta.

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

Creación de un Gráfico para visualizar las velocidades en las que mayormente viajaba el ciclista.

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

Creación de una Gráfica de Dispersión para visualizar los lugares más visitados por el ciclista.

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))

Creación de una Gráfica en 3D para la visualización de Acelerometro y Giroscopio en eje Y.

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

Creación de una Gráfica de Barras para la visualización de los Horarios de mayor Actividad del Ciclista.

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
}

CONCLUSIONES

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.