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.

Clasificación de dataframe utilizando dos columnas en R.

Soy nuevo en el uso de R y tengo dificultades para ordenar un DataFrame utilizando dos columnas en R. Los datos están en esta forma.

A B
1 1
2 1
2 1
4 4
5 3

Quiero que el resultado sea de la siguiente forma:

A B Rank
1 1 1
2 1 2
2 1 2
4 4 5
5 3 4

que se clasifique primero por la columna B, y luego se utilice la columna A para clasificar si hay un valor igual en B. Creo que mi pregunta es muy similar a esta y he intentado las respuestas que aparecen allí, pero no me funcionaron.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puedes utilizar el paquete dplyr en R para obtener los resultados deseados. Aquí está el código:

    library(dplyr)
    
    df <- data.frame(A = c(1,2,2,4,5), B = c(1,1,1,4,3))
    
    df %>%
      arrange(B, A) %>%
      mutate(Rank = row_number())
    

    Explicación:

    • Primero, cargas la librería dplyr para la manipulación de datos.
    • Creas un data frame df con los datos de entrada proporcionados.
    • Utilizando el operador de tubería (%>%), encadenas múltiples operaciones en el data frame.
    • La función arrange ordena el data frame por la columna B primero, y luego por la columna A dentro de cada nivel de la columna B.
    • La función mutate crea una nueva columna Rank utilizando row_number, que asigna un rango único entero a cada fila basado en el orden ordenado.

    El data frame resultante tendrá el formato deseado, con las filas clasificadas por las columnas A y B.

Comments are closed.