有什么理由我应该使用
map(<list-like-object>, function(x) <do stuff>)
代替
lapply(<list-like-object>, function(x) <do stuff>)
输出应该是相同的,并且我所做的基准测试似乎表明lapply
速度稍快(应该根据map
需要评估所有非标准评估输入)。
那么,在这种简单情况下,我是否应该考虑转用任何理由purrr::map
?我在这里不是在问语法的好恶,而是由purrr等提供的其他功能,而是严格地purrr::map
与lapply
假设使用标准评估进行比较map(<list-like-object>, function(x) <do stuff>)
。purrr::map
在性能,异常处理等方面有什么优势吗?下面的评论建议不要这样做,但是也许有人可以详细说明一下?
~{}
快捷拉姆达(带或不带{}
密封交易对我来说平淡purrr::map()
。的种类执法purrr::map_…()
是很方便的,少钝比vapply()
,purrr::map_df()
是一个超级昂贵的功能,但它也简化了代码。但绝对没有错与基础R坚持[lsv]apply()
,虽然。
purrr
东西。我的观点是:tidyverse
非常适合分析/交互/报告内容,而不适合编程。如果您必须使用,lapply
或者map
您正在编程,那么可能最终需要创建一个程序包。然后,依赖性越少越好。另外:我有时会看到人们使用map
了晦涩难懂的语法。现在,我看到了性能测试:如果您习惯了apply
家庭生活:坚持下去。
tidyverse
虽然,你可能会受益于管道%>%
和匿名函数~ .x + 1
的语法