0% encontró este documento útil (0 votos)
28 vistas2 páginas

Guía Rápida de Manipulación de Datos con dplyr

La guía rápida de dplyr proporciona un conjunto de funciones para la manipulación de datos en R, utilizando canalizaciones para facilitar el análisis. Incluye métodos para extraer, resumir, agrupar, y combinar datos, así como para crear nuevas variables y realizar uniones entre tablas. Además, se describen funciones vectorizadas y operaciones lógicas que permiten un manejo eficiente de los datos.

Cargado por

wily
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas2 páginas

Guía Rápida de Manipulación de Datos con dplyr

La guía rápida de dplyr proporciona un conjunto de funciones para la manipulación de datos en R, utilizando canalizaciones para facilitar el análisis. Incluye métodos para extraer, resumir, agrupar, y combinar datos, así como para crear nuevas variables y realizar uniones entre tablas. Además, se describen funciones vectorizadas y operaciones lógicas que permiten un manejo eficiente de los datos.

Cargado por

wily
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Transformación de datos con dplyr : : GUÍA RÁPIDA

Las funciones de dplyr se usan con canalizaciones (pipe) y datos


ordenados. Datos ordenados: Manipular Casos Manipular variables
&
pipe EXTRAER CASOS EXTRAER VARIABLES
Las funciones de fila devuelven un subconjunto de filas como Las funciones de columna devuelven un conjunto de columnas
Cada variable es Cada observación, o x |> f(y) una nueva tabla. como un nuevo vector o tabla.
su propia columna caso, es una fila es f(x, y) filter(.data, …, .preserve = FALSE) Extraer filas pull(.data, var = -1, name = NULL, …) Extraer
que cumplan criterios lógicos. valores de columna como un vector, por nombre
o índice.
Resumir Casos mtcars |> filter(mpg > 20)
distinct(.data, …, .keep_all = FALSE) Eliminar
mtcars |> pull(wt)

Aplique funciones de resumen a las columnas para crear una filas con valores duplicados. select(.data, …) Extraer columnas como una
nueva tabla de estadísticas de resumen. Las funciones de mtcars |> distinct(gear) tabla.
resumen toman vectores como entrada y devuelven un valor (ver mtcars |> select(mpg, wt)
atrás). slice(.data, …, .preserve = FALSE) Seleccionar
filas por posición. relocate(.data, …, .before = NULL, .after = NULL)
summary function Mover columnas a una nueva posición.
mtcars |> slice(10:15) mtcars |> relocate(mpg, cyl, .after = last_col())
summarise(.data, …)
Calcular tabla de resúmenes. slice_sample(.data, …, n, prop, weight_by =
mtcars |> summarise(avg = mean(mpg)) NULL, replace = FALSE) Seleccione filas al azar.
Use n para seleccionar un número de filas y Utilice estos ayudantes con select() y across()
prop para seleccionar una fracción de filas. e.j. select(mtcars, mpg:cyl)
count(.data, …, wt = NULL, sort = FALSE, name =
NULL) Cuente el número de filas de cada grupo mtcars |> slice_sample(n = 5, replace = TRUE) contains(match) num_range(prefix, range) :, e.g. mpg:cyl
definido por las variables de ... Además tally(). ends_with(match) all_of(x)/any_of(x, …, vars) -, e.g, -gear
slice_min(.data, order_by, …, n, prop, starts_with(match) matches(match) everything()
Mtcars |> count(cyl)
with_ties = TRUE) y slice_max() Seleccione las
filas con los valores más bajos y más altos. MANIPULAR VARIAS VARIABLES A LA VEZ
mtcars |> slice_min(mpg, prop = 0.25)
df <- tibble(x_1 = c(1, 2), x_2 = c(3, 4), y = c(4, 5))
Agrupar Casos slice_head(.data, …, n, prop) y slice_tail() across(.cols, .funs, …, .names = NULL) Resumir o
Seleccione la primera o la última fila. mutar varias columnas de la misma manera.
Utilice group_by(.data, ..., .add = FALSE, .drop = TRUE) para crear mtcars |> slice_head(n = 5)
una copia "agrupada" de una tabla agrupada por columnas en ... df |> summarise(across(everything(), mean))
Las funciones de dplyr manipularán cada "grupo" por separado y
combinarán los resultados. c_across(.cols) Calcule a través de columnas en
Operadores lógicos y booleanos que se pueden usar con filter() datos agrupados por filas.
df |>
== < <= [Link]() %in% | xor() rowwise() |>
mtcars |> mutate(x_total = sum(c_across(1:2)))
group_by(cyl) |> != > >= ![Link]() ! &
summarise(avg = mean(mpg)) Vea ?base::Logic y ?Comparison para obtener ayuda.
MAKE NEW VARIABLES
ORGANIZAR CASOS Apply vectorized functions to columns. Vectorized functions take
Utilice rowwise(.data, ...) para agrupar los datos en filas
individuales. Las funciones dplyr calcularán los resultados de cada arrange(.data, …, .by_group = FALSE) Ordene vectors as input and return vectors of the same length as output
fila. También aplique funciones a las columnas de lista. Consulte la las filas por valores de una columna o columnas (see back).
hoja de referencia rápida de tidyr para el flujo de trabajo de la lista (de menor a mayor), utilícela con desc() para vectorized function
de columnas. ordenar de mayor a menor.
mtcars |> arrange(mpg)
starwars |> mtcars |> arrange(desc(mpg)) mutate(.data, …, .keep = "all", .before = NULL,
rowwise() |> .after = NULL) compute new column(s). Also
mutate(film_count = length(films)) AÑADIR CASOS add_column().
mtcars |> mutate(gpm = 1 / mpg)
add_row(.data, …, .before = NULL, .after = mtcars |> mutate(gpm = 1 / mpg, keep = “none”)
ungroup(x, …) Devuelve una copia desagrupada de la tabla. NULL) Agregar una o más filas a una tabla.
g_mtcars <- mtcars |> group_by(cyl) cars |> add_row(speed = 1, dist = 1)
ungroup(g_mtcars) rename(.data, …) Rename columns. Use
rename_with() to rename with a function.
mtcars |> rename(miles_per_gallon = mpg)

CC BY SA Posit Software, PBC • info@[Link] • [Link] • Vea más en [Link] • Guía rápida HTML en [Link]/cheatsheets • dplyr 1.1.4 • Actualizado: 2024-05
Funciones Vectorizadas Funciones De Resumen Combinar Tablas
USAR CON MUTATE () PARA USAR CON SUMMARISE () COMBINAR VARIABLES COMBINAR CASOS
mutate() aplica funciones vectorizadas a las summarise() aplica funciones de resumen a las x y
A B C
columnas para crear nuevas columnas. Las columnas para crear una nueva tabla. Las A B C E F G A B C E F G

+ =
a t 1
funciones vectorizadas toman vectores como funciones de resumen toman vectores como a
b
t
u
1
2
a
b
t
u
3
2
a
b
t
u
1
2
a
b
t
u
3
2 x b u 2

vectores de entrada y de retorno de la misma entrada y devuelven valores individuales como c v 3 d w 1 c v 3 d w 1


salida. A B C
longitud que salida.
función vectorizada función de resumen
bind_cols(…, .name_repair) Devuelve tablas
colocadas una al lado de la otra como una sola + y
c v 3
d w 4
bind_rows(…, .id = NULL)
Devuelve tablas una encima de
tabla. Las longitudes de las columnas deben ser DF A B C
la otra como una sola tabla.
iguales. Las columnas NO coincidirán con id x a t 1 Establezca .id en un nombre de
(para ello, consulte Datos relacionales a x b u 2 columna para agregar una
DESPLAZAR CONTAR continuación), así que asegúrese de comprobar y c v 3 columna de los nombres de
dplyr::lag() – desplaza elementos por 1 dplyr::n() - número de valores/filas que ambas tablas están ordenadas de la forma y d w 4
dplyr::n_distinct() - # de carácter único tabla originales (como se
dplyr::lead() - desplaza elementos por -1 que desee antes de enlazar. muestra en la imagen).
sum(![Link]()) - # de los que no son NA
AGREGADO ACUMULADO DATOS RELACIONALES
POSICIÓN
dplyr::cumall() - all() acumulativo mean() - media, además mean(![Link]()) Utilice una "Unión mutante" para unir una Utilice una "Unión de filtrado" para filtrar una
dplyr::cumany() - any() acumulativo median() - mediana tabla a columnas de otra, haciendo coincidir los tabla con respecto a las filas de otra.
cummax() - max() acumulativo valores con las filas a las que corresponden. A B C A B D
dplyr::cummean() - mean() acumulativo
cummin() - min() acumulativo
LÓGICO
mean() - proporción de TRUE’s
Cada combinación conserva una combinación
diferente de valores de las tablas.
a
b
c
t
u
v
1
2
3
+ a
b
d
t
u
w
3
2
1
=
cumprod() - prod() acumulativo sum() - # of TRUE’s x y
cumsum() - sum() acumulativo
A B C D left_join(x, y, by = NULL, copy = FALSE,
a t 1 3
suffix = c(".x", ".y"), …, keep = FALSE, semi_join(x, y, by = NULL, copy = FALSE,
ORDEN b
c
u
v
2
3 NA
2
na_matched = "na") Unir valores A B C …, na_matches = "na") Devuelve filas de
CLASIFICACIÓN dplyr::first() - primer valor coincidentes de y a x. a t 1 x que tienen una coincidencia en y.
dplyr::cume_dist() - proporción de todos los dplyr::last() - último valor b u 2 Utilícelo para ver lo que se incluirá en
valores <= dplyr::nth() - valor en la enésima ubicación del una unión.
vector A B C D right_join(x, y, by = NULL, copy = FALSE,
dplyr::dense_rank() - Rangos w empates = mín., a t 1 3
suffix = c(".x", ".y"), …, keep = FALSE,
sin huecos b u 2 2
na_matches = "na") Unir valores anti_join(x, y, by = NULL, copy = FALSE,
dplyr::min_rank() - Rango con empates = Min RANGO d w NA 1
…, na_matches = "na") Devuelve filas de
quantile() - enésimo cuantil coincidentes de x a y. A B C
dplyr::ntile() - Contenedores en N contenedores c v 3 x que no tienen una coincidencia en y.
dplyr::percent_rank() - min_rank escalado a [0,1] min() - valor mínimo Utilícelo para ver lo que no se incluirá en
max() - valor máximo A B C D inner_join(x, y, by = NULL, copy =
dplyr::row_number() - Rango con empates= "first" a t 1 3
FALSE, suffix = c(".x", ".y"), …, keep = una unión.
b u 2 2
PROPAGACIÓN FALSE, na_matches = "na") Unir datos. Usar una "unión anidada" para unir
MATEMÁTICA IQR() - Rango intercuartílico Conservar solo las filas con internamente una tabla con otra en un marco de
+, - , *, /, ^, %/%, %% - operaciones mad() - desviación absoluta mediana coincidencias. datos anidado.
aritméticas sd() - desviación estándar A B C y nest_join(x, y, by = NULL, copy =
log(), log2(), log10() - logs var() - varianza A B C D full_join(x, y, by = NULL, copy = FALSE, a t 1 <tibble [1x2]> FALSE, keep = FALSE, name =
<, <=, >, >=, !=, == - comparaciones lógicas a t 1 3 suffix = c(".x", ".y"), …, keep = FALSE, b u 2 <tibble [1x2]>
NULL, …) Unir datos, anidar
b u 2 2
dplyr::between() - x >= left & x <= right c v 3NA
na_matches = "na") Unir datos. c v 3 <tibble [1x2]>
coincidencias de y en una sola
dplyr::near() - seguro == para números de coma d w NA 1 Conservar todos los valores, todas las columna de trama de datos
flotante filas. nueva.

MISCELÁNEO Nombres De Fila


Los datos ordenados no utilizan nombres de fila,
COINCIDENCIA DE COLUMNAS PARA UNIONES
OPERACIONES DE CONJUNTO
intersect(x, y, …)
dplyr::case_when() - multi-caso if_else() A B.x C B.y D Utilice by = c("col1", "col2", …) A B C
Filas que aparecen tanto en x
starwars |> que almacenan una variable fuera de las columnas. a t 1 t 3 para especificar una o varias
c v 3
Para trabajar con los nombres de fila, primero como en y.
mutate(type = case_when( b u 2 u 2 columnas comunes para que
height > 200 | mass > 200 ~ "large", muévalos a una columna. c v 3 NA NA
coincidan en.
tibble::rownames_to_column() left_join(x, y, by = "A") A B C setdiff(x, y, …)
species == "Droid" ~ "robot", A B
1 a t
C
1
A
a
B
t a t 1 Filas que aparecen en x pero no
TRUE ~ "other") Mover nombres de fila a col. b u 2
en y.
)
2 b u 2 b u
a <- rownames_to_column(mtcars, Usar un vector con nombre, by =
3 c v 3 c v A.x B.x C A.y B.y c("col1" = "col2"), para que
dplyr::coalesce() - primeros valores no NA por var = "C") a t 1 d w coincida en columnas que tienen union(x, y, …)
A B C
elemento en un conjunto de b u 2 b u
nombres diferentes en cada tabla. a t 1 Filas que aparecen en x o y.
vectores A
1
B
a
C
t
A B tibble::column_to_rownames() c v 3 a t
left_join(x, y, by = c("C" = "D")) b u 2
(Duplicados eliminados). union_all()
dplyr::if_else() - if() + else() por elemento 2 b u
t 1 a
Mover col a los nombres de fila. c v 3
conserva los duplicados.
dplyr::na_if() - reemplace valores específicos con 3 c v
u 2 b
v 3 c column_to_rownames(a, var = "C") Usar suffix para especificar el sufijo d w 4

NA
A1 B1 C A2 B2
que se va a dar a las columnas no
pmax() - max() por elemento
a
b u
t 1
2
d
b
w
u
coincidentes que tienen el mismo Utilice setequal() para comprobar si dos
También tibble::has_rownames() y nombre en ambas tablas. conjuntos de datos contienen exactamente las
pmin() - min() por elemento tibble::remove_rownames().
c v 3 a t
left_join(x, y, by = c("C" = "D"),
suffix = c("1", "2")) mismas filas (en cualquier orden).

CC BY SA Posit Software, PBC • info@[Link] • [Link] • Vea más en [Link] • Guía rápida HTML en [Link]/cheatsheets • dplyr 1.1.4 • Actualizado: 2024-05

También podría gustarte