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