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
across(where(is.numeric), fn)es la forma común.- Una lista nombrada de funciones produce una columna por par.
.namescontrola 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.
Paso 3 de 4 en Columnas nuevas; paso 12 de 27 en dplyr.