es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener los elementos más repetidos en una columna y su valor asociado en otra columna.

Mi conjunto de datos original (cyclistic_data) tiene 3 columnas: nombre de la estación, station_lat y station_lng. Esta es una vista previa de mi conjunto de datos.
Vista previa del conjunto de datos

station_coordinates <- 
   data.frame(
     station = c(Dearborn St, Franklin St, Lake Shore Dr, Dearborn St, 
                 Dearborn St,  Franklin St),
     station_lat = c(-87.6291273333333, -87.6353428333333, 
                     41.8809828333333, -87.6291273333333, 
                    -87.6291273333333, -87.6353428333333),
     station_lng = c(41.8944341666667, 41.900675, 41.8720545, 
                     41.8944341666667, 41.8944341666667, 41.900675) 
   )              

Intenté usar el siguiente código para obtener los 100 nombres de estación más comunes:

sort(table(cyclistic_data$start_station),decreasing=TRUE)[1:100]

Al usar este código, identifiqué las 100 estaciones principales pero no pude extraer los valores correspondientes de latitud y longitud de los datos originales. Quiero recuperar los nombres de las 100 estaciones más comunes junto con sus valores de latitud y longitud del conjunto de datos original.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una opción para recuperar los 100 nombres de estaciones más repetidos junto con sus latitudes y longitudes sería utilizar el paquete dplyr. Primero podemos agrupar los datos por nombre de estación, contar el número de ocurrencias de cada estación, ordenar los datos en orden descendente de frecuencia, seleccionar las 100 estaciones principales y luego unir estos datos con el conjunto de datos original según la columna nombre de estación. Aquí hay un ejemplo de código para lograr esto:

    “`{r}
    library(dplyr)

    agrupar y contar las estaciones, ordenar en orden descendente y seleccionar las primeras 100

    top_estaciones <- datos_ciclismo %>%
    group_by(nombre de estación) %>%
    summarize(n = n()) %>%
    arrange(desc(n)) %>%
    top_n(100)

    unir con el conjunto de datos original para recuperar la latitud y longitud

    coordenadas_estaciones <- datos_ciclismo %>%
    filter(nombre de estación %in% top_estaciones$nombre de estación) %>%
    select(nombre de estación, latitud_estacion, longitud_estacion) %>%
    distinct()
    “`

    En el código anterior, primero creamos un nuevo marco de datos top_estaciones que contiene los 100 nombres de estaciones más repetidos y su frecuencia. Lo logramos agrupando los datos por nombre de estación, contando el número de ocurrencias (summarize(n = n())), ordenando el marco de datos en orden descendente de frecuencia (arrange(desc(n))) y seleccionando las 100 estaciones principales usando top_n (100).

    Luego, usamos este marco de datos para filtrar el conjunto de datos original y recuperar los valores de latitud y longitud correspondientes para cada una de las 100 estaciones principales. Lo logramos filtrando el conjunto de datos para incluir solo los nombres de estación que están en top_estaciones (filter(nombre de estación%in% top_estaciones$nombre de estación)), seleccionando solo las columnas que necesitamos (select(nombre de estación, latitud_estacion, longitud_estacion)) y eliminando cualquier duplicado (distinct()).

    Finalmente, el marco de datos resultante coordenadas_estaciones contiene los 100 nombres de estaciones más repetidos junto con sus valores de latitud y longitud.

Comments are closed.