gpt4 book ai didi

r - 函数参数匹配 : by name vs by position

转载 作者:行者123 更新时间:2023-12-03 19:39:08 25 4
gpt4 key购买 nike

这几行代码有什么区别?

mean(some_argument)

mean(x = some_argument)

输出相同,但明确提及 x有什么优势吗?

最佳答案

人们通常不会为常用参数添加参数名称,例如 mean 中的 x。 ,但几乎总是引用 na.rm删除缺失值时的参数。

虽然忽略参数名称会使代码紧凑,但这里有四个(相关的)原因来包含参数名称而不是依赖它们的位置。

  • 根据需要重新排序参数。当您按名称引用参数时,您可以任意重新排列参数并仍然产生所需的结果。有时重新排列参数很有用。例如,当对其中一个参数运行循环时,您可能更愿意将循环参数放在函数的前面。
  • 它通常更安全/更面向 future 。例如,如果某些用户编写的函数或包在更新中对参数重新排序,而您依赖于参数的位置,这将破坏您的代码。在最好的情况下,你会得到一个错误。在最坏的情况下,该函数会运行,但会产生不正确的结果。包括参数名称大大减少了遇到任何一种情况的机会。
  • 为了更清晰的代码。如果某个参数很少使用,或者您希望对代码的 future 读者(包括 2 个月后的您)明确,添加名称可以使阅读更容易。
  • 能够跳过参数。如果您只想更改第三个参数,那么按名称引用它可能更可取。


  • 另见 R Language Definition: 4.3.2 Argument matching

    关于r - 函数参数匹配 : by name vs by position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42719093/

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