[英]Why is function not properly mapping to values while using purrr::possibly?
我正在尝试使用purrr::possibly()
来跳过我的代码中的错误,但由于某种原因,当我在这里使用 possible possibly()
时,它返回 output 就好像一切都是错误一样。
这是一个例子:
library(purrr)
add_things <- function(number) {
new_number <- number + 1
return(new_number)
}
possibly_add_things <- possibly(add_things, otherwise = NA)
# Works
map(c(1, 2, 3), possibly_add_things)
#> [[1]]
#> [1] 2
#>
#> [[2]]
#> [1] 3
#>
#> [[3]]
#> [1] 4
# Shouldn't be all NAs -- only the 2nd one
map(c(1, "hi", 3), possibly_add_things)
#> [[1]]
#> [1] NA
#>
#> [[2]]
#> [1] NA
#>
#> [[3]]
#> [1] NA
由代表 package (v1.0.0) 于 2021 年 5 月 11 日创建
任何建议将不胜感激。
问题是vector
是由它的单一类型和大小或长度定义的。 当我们使用c
时,它连接到一个vector
,并且基于 type 的优先级, character
具有更高的优先级,因此所有元素都转换为character
。 相反,输入应该是一个list
map(list(1, 'hi', 3), possibly_add_things)
#[[1]]
#[1] 2
#[[2]]
#[1] NA
#[[3]]
#[1] 4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.