为R函数提供默认参数时,首次在函数中使用时会计算此参数。如何以优雅的方式更早地评估默认参数?例如:
f <- function(x, y = 2 * x)
{
if(x < 0) x = 10
y
}
f(1) ## Returns 2
f(-1) ## Returns 20 but I would like it to return -2
由于
答案 0 :(得分:1)
答案并非难以找到。功能&#39; force&#39;诀窍:
f <- function(x, y = 2 * x)
{
force(y)
if(x < 0) x = 10
y
}
f(1) ## Returns 2
f(-1) ## -2