繁体   English   中英

为什么在使用 purrr::possibly 时 function 没有正确映射到值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM