typestar

across en R

Aplicar la misma transformación a varias columnas a la vez.

library(dplyr)

runs <- tibble(
  lang = c("r", "python"),
  tpm = c(96.4, 104.2),
  accuracy = c(97.2, 99.1)
)

print(mutate(runs, across(where(is.numeric), round, 1)))

print(summarise(runs, across(c(tpm, accuracy),
                            list(mean = mean, max = max),
                            .names = "{.col}_{.fn}")))

print(mutate(runs, across(where(is.character), toupper)))
print(summarise(runs, across(everything(), ~ length(unique(.x)))))

Cómo funciona

  1. across(where(is.numeric), fn) es la forma común.
  2. Una lista nombrada de funciones produce una columna por par.
  3. .names controla cómo se llaman las columnas nuevas.

El intento, en números

Líneas
16
Caracteres a escribir
394
Tokens
129
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 81 segundos.

Escribe este fragmento

Paso 3 de 4 en Columnas nuevas; paso 12 de 27 en dplyr.

← Anterior Siguiente →