typestar

Joins con claves distintas en R

join_by maneja claves renombradas, joins por desigualdad y coincidencias rolling.

library(dplyr)

runs <- tibble(language = c("r", "python"), tpm = c(96, 104))
labels <- tibble(lang = c("r", "python"), label = c("R", "Python"))

print(left_join(runs, labels, by = join_by(language == lang)))

bands <- tibble(low = c(0, 90, 100), high = c(90, 100, Inf),
                band = c("slow", "good", "fast"))
print(left_join(runs, bands, by = join_by(between(tpm, low, high))))

events <- tibble(at = c(2, 8), value = c("a", "b"))
settings <- tibble(at = c(1, 5), theme = c("light", "dark"))
print(left_join(events, settings, by = join_by(closest(at >= at))))

Cómo funciona

  1. join_by(a == b) une columnas con nombres distintos.
  2. Una desigualdad en join_by da un join por rango.
  3. closest() es el join rolling, para emparejar con el tiempo más cercano.

El intento, en números

Líneas
14
Caracteres a escribir
556
Tokens
204
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 117 segundos.

Escribe este fragmento

Paso 2 de 4 en Joins; paso 22 de 27 en dplyr.

← Anterior Siguiente →