gpt4 book ai didi

r - 为什么 sapply() 和 options() "undesirable"?

转载 作者:行者123 更新时间:2023-12-03 20:23:52 25 4
gpt4 key购买 nike

Jim Hester 的“lintr”包包含许多不同的 R 短绒工具。README for the package以这种方式描述其中一个短绒:

undesirable_function_linter: report the use of undesirable functions, e.g. options or sapply and suggest an alternative.


我很惊讶。我用R很多年了,一直在用 options()sapply()很多年了。是什么让他们不受欢迎?还有更好的选择吗?
我知道 getOption() ,但它不能替代 options() .我也知道 *apply()变体, Map()和 Tidyverse map职能。 Tidyverse 功能在我看来总体上比 sapply() 更好或 Map() -- 我更喜欢 Tidyverse 函数中的默认值和参数顺序 -- 但我没想过要调用 sapply() “不受欢迎。”

最佳答案

如果您查看该函数的标题,

function(fun = default_undesirable_functions)
你会看到它在 default_undesirable_functions 中记录了它的选择,如果你看那个对象,你会看到:
...
$options
[1] "use withr::with_options()"
...
$sapply
[1] "use vapply() or lapply()"
...
从替代方案中,您可以猜测为什么作者认为这些功能是“不可取的”:
  • options()不好,因为它具有全局性的副作用。 withr::with_options()替代保留对本地选项的任何更改。
  • sapply()不好是因为 vapply()更安全(如 ?sapply 中所述)。
  • 关于r - 为什么 sapply() 和 options() "undesirable"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65466324/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com