typestar

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

  1. safely devuelve una lista con resultado y error, sin lanzar nunca.
  2. possibly sustituye un valor por defecto en su lugar.
  3. list_rbind apila los resultados exitosos.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 4 en purrr; paso 3 de 10 en Herramientas funcionales y de texto.

← Anterior Siguiente →