typestar

Anidación en R

Una columna de listas con data frames, uno por grupo — el modo tidy de modelar por grupo.

library(tidyr)
library(dplyr)
library(purrr)

runs <- tibble(
  lang = c("r", "r", "r", "python", "python", "python"),
  day = c(1, 2, 3, 1, 2, 3),
  tpm = c(88, 92, 96, 99, 104, 101)
)

nested <- nest(runs, data = c(day, tpm))
print(nested)

fitted <- mutate(nested,
                 rows = map_int(data, nrow),
                 slope = map_dbl(data, ~ coef(lm(tpm ~ day, data = .x))[[2]]))
print(select(fitted, lang, rows, slope))
print(unnest(nested, data) |> nrow())

Cómo funciona

  1. nest(.by = ) pone las filas de cada grupo en una columna data.
  2. map sobre esa columna ajusta o resume por grupo.
  3. unnest la vuelve a aplanar.

El intento, en números

Líneas
18
Caracteres a escribir
430
Tokens
158
Ritmo de tres estrellas
105 tpm

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

Escribe este fragmento

Paso 1 de 3 en Anidado y huecos; paso 6 de 12 en Remodelar y leer.

← Anterior Siguiente →