我个人非常不愿意更改任何常用函数的默认行为——尤其是基本 R 函数。一方面,它会立即降低使用重新定义函数的任何脚本或代码片段的可移植性。更糟糕的是,阅读您的脚本的其他 R 用户可能会:(a) 不知道您对众所周知的语言元素的私人含义,或者 (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()
.