【发布时间】:2019-04-12 08:25:54
【问题描述】:
我正在编写一个需要默认参数才能工作的包函数,但其值必须取自函数的已处理(其他)参数。 截至目前,我正在这样做:
myfunc <- function(x, y, n=NULL){
processed <- some_other_func(x,y)
x <- processed$x
y <- processed$y
if(is.null(n)){
n <- length(intersect(x,y))/3
}
# do stuff
}
但理想情况下,我希望使用默认表达式而不是 NULL,因为如果我的文档说默认值是 length(intersect(x,y))/3,这似乎不一致。
你知道我可以指定默认参数更易于理解的方法吗?
【问题讨论】:
-
可能是
missing()而不是is.null()。 stackoverflow.com/questions/7964830/… -
如果这个默认值需要输入其他函数参数,我真的没有看到比你正在做的更好的方法了。
-
请注意
n=NULL, imo 是一个合法的默认值,只需在文档中指定如果缺少它将被设置为length(..)。