Есть ли способ использовать аргументы, переданные исходной функции в аргументе otherwise
, равном purrr::possibly()
?
Например (это глупый игрушечный пример - настоящий код включает в себя очистку веб-страниц).за защищенным паролем порталом):
library(tidyverse)
library(purrr)
foo <- tibble(x = 1:3, y = 1:3)
toyfunction <- function(x, df = foo) {
df[x, x] %>%
mutate(indexed_at = x)
}
# gives an error once we get over 3
map(1:6, toyfunction)
# so, let's make it safe
possiblyversion <- possibly(toyfunction, otherwise = 12345)
# this works, but get confusing & inconsistent (I couldn't use map_dfr() if I wanted to!)
map(1:6, possiblyversion)
# ideally, something like this would be possible
idealpossible <- possibly(
toyfunction(x, df = foo)
, otherwise = tibble(x = NA, y = NA, indexed_at = x)
)
# so we get results like this:
idealpossible(6)
# A tibble: 1 x 2
x y indexed_at
<int> <int> <dbl>
NA NA 6
Поддержание работы и возвращение согласованных результатов является более высоким приоритетом, чем сбор ошибок и еще много чего, поэтому я не учел safely()
или quietly()
.
Есть ли способ использовать исходные аргументы функции в результатах otherwise
?