gpt4 book ai didi

r - 根据项目特定设置函数默认值 R

转载 作者:行者123 更新时间:2023-12-03 19:58:21 26 4
gpt4 key购买 nike

通常,我使用相同的功能设置。我想知道是否有一种方法,除了在路径中有一个本质上是函数包装器的新对象之外,可以设置默认参数。例如:
paste()sep参数设置为空格 =" " , 写累了,sep=""一遍又一遍。那么有没有办法用我选择的默认值“临时”替换该函数?

paste(...,sep="") 

我可以通过包装来做到这一点吗?我有时注意到,一些包会强制其他同名函数在全局环境中被屏蔽。

理想情况下,我希望可以在( load.r 或其他类似的工作流程起点)中逐个项目地设置一些东西

最佳答案

我个人会是非常不愿更改任何常用函数的默认行为——尤其是基本 R 函数。一方面,它会立即降低使用重新定义函数的任何脚本或代码片段的可移植性。更糟糕的是,阅读您的脚本的其他 R 用户可能会:(a) 不知道您对众所周知的语言元素的私有(private)含义,或者 (b) 对不得不重新连接他们自己对功能的期望感到沮丧。对我来说,在不同的环境中为同一个符号赋予不同的含义也会增加精神负担。

我认为是 很多更好的解决方案是创建类似命名的函数来实现您的首选默认值。稍加修改的名称将有效地表明这不是熟悉的基本功能,而不会给您带来太多或任何额外的输入负担。一个很好的例子是 paste0()cat0() gsubfn 中包含的函数包裹。 (很明显,你和我并不是唯一(经常)对 paste() 的默认 sep 设置感到恼火的两个人!):

library(gsubfn)

paste0
# function (..., sep = "")
# paste(..., sep = sep)
# <environment: namespace:gsubfn>

cat0
# function (..., sep = "")
# cat(..., sep = sep)
# <environment: namespace:gsubfn>

然后,您可以在一个文本文件中收集这些函数,在脚本的早期获取它们,或者(更好)将它们打包并通过调用 library() 加载它们。 .

关于r - 根据项目特定设置函数默认值 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073912/

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