【发布时间】:2019-09-17 18:10:01
【问题描述】:
我正在学习在 purrr 中使用 map() 系列函数,但不明白为什么以下工作...
df <- data.frame(col1 = c(5,4,3), col2=c("a", "b", "c"))
my_f <- function(v1){
output <- v1 + 1
return(output)
}
addone_v <- df$col1 %>%
map_dbl(my_f)
但如果将map_dbl() 更改为map(),则不会。在后一种情况下,我收到错误:
Error in paste("(^", regions, ")", sep = "", collapse = "|") :
cannot coerce type 'closure' to vector of type 'character'
这是一条我不明白的错误消息。
当我不确定我可能得到的输出类型时,我认为 map() 是最安全的使用方法。
【问题讨论】:
-
你运行的和你展示的一样吗?如所写,我没有收到您提供的错误。也许您没有将结果分配给
addone_v,而是分配给 data.frame 的列? -
不清楚错误。
regions等是什么 -
您是说
df$col1 %>% map(my_f)返回您粘贴到问题中的错误消息吗?我也无法复制。 -
我搞砸了命名空间。使用 purrr::map() 时有效
-
这是一个更好的语法:
{df$col1} %>% map(my_f)