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