¿Cómo seleccionar filas por índice en un marco de datos R?

Filtrar filas por índice en marcos de datos R

Puede crear subconjuntos de una o varias filas de un R DataFrame usando la siguiente sintaxis de R

#subset a single row using R base your_df[row_number,]  # choose multiple rows using  R base your_df[row_number_vector,]  # subset rows using dplyr library (dplyr) subset <- slice (your_df, row_number_vector)  

Comenzaremos creando el siguiente DataFrame de ejemplo que puede usar para seguir:

# create vectors month <- c ('October', 'December', 'October', 'June', 'June', 'December') office <- c ('Hong Kong', 'Toronto', 'Hong Kong', 'Buenos Aires', 'Toronto', 'Los Angeles') salary <- c (134.0, 99.0, 234.0, 134.0, 86.0, 186.0)  # initialize DataFrame hrdf <- data.frame (month = month, office = office, salary = salary)

Esto devolverá el siguiente R DataFrame:

mesoficinasalario
1 Octubre Hong Kong 134
2 Diciembre toronto 99
3 Octubre Hong Kong 234
4 Junio Buenos Aires 134
5 Junio toronto 86
6 Diciembre los Angeles 186

Subconjunto de una sola fila específica por índice

Para elegir una sola fila por índice, simplemente pasamos el número de fila usando la notación de corchetes. El siguiente fragmento selecciona la segunda fila de nuestro DataFrame. Tenga en cuenta que en R el recuento de índices comienza en 1, a diferencia de Python/Pandas.

second_row <- hrdf[2,]

Nota: La sentencia hrdf[2] devolverá la segunda columna de su DataFrame.

Elija varias filas por índice

Para seleccionar varias filas, pasaremos un vector que contiene el orden de las filas:

row_vector <- c(2,3,4) hrdf[row_vector,]

Esto devolverá la segunda, tercera y cuarta fila.

Podríamos haber logrado el mismo resultado pasando un rango de filas:

hrdf [2:4,]

Filtrar filas de R DataFrame con dplyr

Siempre que sea posible, trato de usar la biblioteca dplyr, que simplifica la gestión de datos en R. En este caso, comenzaremos importando dplyr (requiere instalarlo primero en su entorno de desarrollo R). Luego usamos la función dplyr slice y pasamos el DataFrame y el vector de fila (en este caso, pasamos la segunda y la quinta fila).

library(dplyr)  #1 subset <- slice(hrdf, c(2,5)) print (subset)

Esto devolverá las siguientes filas:

1 Diciembre toronto 99
2 Junio toronto 86

Seleccionar la última fila por índice

Podemos usar la función nrow DataFrame para encontrar la cantidad de filas de DataFrame, luego podemos usarla para crear un subconjunto de la última fila de DataFrame:

hrdf[nrow(hrdf),]

Para completar, puedes hacer lo mismo usando la función tail():

tail(hrdf,1)