purrr y las fallas en R
safely y possibly convierten un error en un valor que puedes inspeccionar.
library(purrr)
library(dplyr)
parse_tpm <- function(text) {
value <- suppressWarnings(as.numeric(text))
if (is.na(value)) stop("not a number: ", text)
value
}
safe_parse <- safely(parse_tpm)
results <- map(c("96", "fast", "104"), safe_parse)
print(map_lgl(results, ~ is.null(.x$error)))
print(compact(map(results, "result")) |> unlist())
maybe_parse <- possibly(parse_tpm, otherwise = NA_real_)
print(map_dbl(c("96", "fast"), maybe_parse))
frames <- map(1:2, ~ tibble(n = .x, squared = .x^2))
print(list_rbind(frames))
Cómo funciona
safelydevuelve una lista con resultado y error, sin lanzar nunca.possiblysustituye un valor por defecto en su lugar.list_rbindapila los resultados exitosos.
Palabras clave y builtins usados aquí
functionif
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 522
- Tokens
- 151
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 86 segundos.
Paso 3 de 4 en purrr; paso 3 de 10 en Herramientas funcionales y de texto.