5.1: Introducción al Tidyverse
- Page ID
- 150540
En este capítulo vamos a introducir una forma de trabajar con datos en R que a menudo se conoce como el “Tidyverse”. Esto comprende un conjunto de paquetes que proporcionan diversas herramientas para trabajar con datos, así como algunas formas especiales de usar esas funciones
5.1.1 Hacer un marco de datos usando tibble ()
El tidyverse proporciona su versión sobre de un marco de datos, que se conoce como tibble. Un tibble es un marco de datos pero con algunos ajustes inteligentes que facilitan el trabajo, especialmente cuando se usan funciones del tidyverse. Consulta aquí para más información sobre la función tibble ()
: https://r4ds.had.co.nz/tibbles.html
# first create the individual variables
n <- c("russ", "lucy", "jaclyn", "tyler")
x <- c(1, 2, 3, 4)
y <- c(4, 5, 6, 7)
z <- c(7, 8, 9, 10)
# create the data frame
myDataFrame <-
tibble(
n, #list each of your columns in the order you want them
x,
y,
z
)
myDataFrame
## # A tibble: 4 x 4
## n x y z
## <chr> <dbl> <dbl> <dbl>
## 1 russ 1 4 7
## 2 lucy 2 5 8
## 3 jaclyn 3 6 9
## 4 tyler 4 7 10
Eche un vistazo rápido a las propiedades del marco de datos usando glimpse ()
:
glimpse(myDataFrame)
## Observations: 4
## Variables: 4
## $ n <chr> "russ", "lucy", "jaclyn", "tyler"
## $ x <dbl> 1, 2, 3, 4
## $ y <dbl> 4, 5, 6, 7
## $ z <dbl> 7, 8, 9, 10
5.1.2 Selección de un elemento
Hay varias formas de acceder a los contenidos dentro de un marco de datos.
5.1.2.1 Seleccionar una fila o columna por nombre
myDataFrame$x
## [1] 1 2 3 4
El primer índice se refiere a la fila, el segundo a la columna.
myDataFrame[1, 2]
## # A tibble: 1 x 1
## x
## <dbl>
## 1 1
myDataFrame[2, 3]
## # A tibble: 1 x 1
## y
## <dbl>
## 1 5
5.1.2.2 Selección de una fila o columna por índice
myDataFrame[1, ]
## # A tibble: 1 x 4
## n x y z
## <chr> <dbl> <dbl> <dbl>
## 1 russ 1 4 7
myDataFrame[, 1]
## # A tibble: 4 x 1
## n
## <chr>
## 1 russ
## 2 lucy
## 3 jaclyn
## 4 tyler
5.1.2.3 Seleccionar un conjunto de filas
myDataFrame %>%
slice(1:2)
## # A tibble: 2 x 4
## n x y z
## <chr> <dbl> <dbl> <dbl>
## 1 russ 1 4 7
## 2 lucy 2 5 8
slice ()
es una función que selecciona las filas en función de su número de fila.
También notarás algo que no hemos discutido antes: %>%
. Esto se llama “pipa”, que se usa comúnmente dentro del tidyverse; puedes leer más aquí. Una tubería toma la salida de un comando y la alimenta como entrada al siguiente comando. En este caso, simplemente escribir el nombre del marco de datos (MyDataFrame) hace que se introduzca en el comando slice ()
que sigue a la tubería. El beneficio de las tuberías se hará especialmente evidente cuando queremos comenzar a encadenar múltiples operaciones de procesamiento de datos en un solo comando.
En este ejemplo, no se crea ninguna nueva variable - la salida se imprime en la pantalla, tal como sería si escribieras el nombre de la variable. Si quisieras guardarlo en una nueva variable, usarías el operador de asignación <-
, así:
myDataFrameSlice <- myDataFrame %>%
slice(1:2)
myDataFrameSlice
## # A tibble: 2 x 4
## n x y z
## <chr> <dbl> <dbl> <dbl>
## 1 russ 1 4 7
## 2 lucy 2 5 8
5.1.2.4 Seleccionar un conjunto de filas basado en valores específicos
myDataFrame %>%
filter(n == "russ")
## # A tibble: 1 x 4
## n x y z
## <chr> <dbl> <dbl> <dbl>
## 1 russ 1 4 7
filter ()
es una función que conserva solo aquellas filas que cumplen con los criterios establecidos. También podemos filtrar por múltiples criterios a la vez; en este ejemplo, el símbolo |
indica “o”:
myDataFrame %>%
filter(n == "russ" | n == "lucy")
## # A tibble: 2 x 4
## n x y z
## <chr> <dbl> <dbl> <dbl>
## 1 russ 1 4 7
## 2 lucy 2 5 8
5.1.2.5 Seleccionar un conjunto de columnas
myDataFrame %>%
select(x:y)
## # A tibble: 4 x 2
## x y
## <dbl> <dbl>
## 1 1 4
## 2 2 5
## 3 3 6
## 4 4 7
select ()
es una función que selecciona solo aquellas columnas que especifique usando sus nombres
También puede especificar un vector de columnas a seleccionar.
myDataFrame %>%
select(c(x,z))
## # A tibble: 4 x 2
## x z
## <dbl> <dbl>
## 1 1 7
## 2 2 8
## 3 3 9
## 4 4 10
5.1.3 Agregar una fila o columna
agregar una fila con nombre
tiffanyDataFrame <-
tibble(
n = "tiffany",
x = 13,
y = 14,
z = 15
)
myDataFrame %>%
bind_rows(tiffanyDataFrame)
## # A tibble: 5 x 4
## n x y z
## <chr> <dbl> <dbl> <dbl>
## 1 russ 1 4 7
## 2 lucy 2 5 8
## 3 jaclyn 3 6 9
## 4 tyler 4 7 10
## 5 tiffany 13 14 15
bind_rows ()
es una función que combina las filas de otro marco de datos al marco de datos actual