¿Cómo mantener filas específicas en un R DataFrame?

En el tutorial de análisis de datos de R de hoy, aprenderemos cómo crear subconjuntos y filtrar una o varias filas en un marco de datos de R y, a continuación, conservar esas columnas como un marco de datos nuevo para un análisis y una visualización adicionales.

En este tutorial, usaremos principalmente el paquete dplyr que permite una manipulación más fácil de R DataFrames.

Inicializar marco de datos R

Comenzaremos creando un DataFrame muy simple:

#R area <- c ("North", "South", "West", "East") indirect <- c(275, 218, 217, 226) direct <- c(353, 350, 326, 368) online <- c(150, 186, 132, 136) revenue <- data.frame (area = area, indirect = indirect, direct = direct, online = online)

Después de ejecutar este comando de script R en RStudio u otro entorno de desarrollo R, obtenemos el siguiente marco de datos:

areaindirectdirectonline
1 Norte 275 353 150
2 Sur 218 350 186
3 Oeste 217 326 132
4 Este 226 368 136

Seleccionar por índice con base r

Podemos usar el siguiente script para mantener filas específicas por posición de fila. Usando la base R, primero definimos un vector de fila y luego usamos ese vector para crear un subconjunto de nuestro DataFrame.

# select by index with base r selected_rows <- c(2,3,4) subset <- revenue[selected_rows,] print (subset)

El resultado es un marco de datos:

2 Sur 218 350 186
3 Oeste 217 326 132
4 Este 226 368 136

Subconjunto de filas por posición con dplyr

Usando la biblioteca dplyr y específicamente la función de corte, podemos extraer fácilmente filas individuales o múltiples específicas en posiciones específicas:

library(dplyr) selected_rows <- c(2,3,4) subset <- slice(revenue, selected_rows) print (subset) 

Nota: asegúrese de instalar el paquete dplyr antes de llamarlo. De lo contrario, se generará la siguiente excepción:

error in library(dplyr) : there is no package called ‘dplyr’

Extraer filas que contienen ciertos valores de columna

Podemos usar la función de filtro proporcionada por dplyr para mantener las filas que cumplan con ciertos criterios de valor:

library(dplyr) subset <- filter (revenue, online >= 150) print (subset)

Obtendrá el siguiente DataFrame:

1 Norte 275 353 150
2 Sur 218 350 186

Subconjunto de datos por múltiples condiciones

De la misma manera podemos definir condiciones más complejas para definir nuestra selección de filas:

library(dplyr) subset <- filter (revenue, online < 150 & direct >=350) print (subset)

Esto devuelve un DataFrame de una sola fila:

Mantener filas aleatorias

En nuestro último ejemplo, usaremos la función aleatoria para seleccionar un número arbitrario de filas de nuestros Datos. En nuestro caso, elegiremos seleccionar dos filas.

library(dplyr) random_subset <- sample_n ( revenue, 2, replace=TRUE) print(random_subset)