在R中,如何在定义函数时将变量的值用作常量?
在循环中,我想做类似的事情:
theta <- vector[n]
f <- function(x)
{
v <- theta * x
return(v)
}
但是我需要能够稍后重新定义theta并且没有更改函数的定义吗?我调查了get()但是遇到了同样的问题。
答案 0 :(得分:3)
您可以尝试这样的事情:
f <- function(theta) {
t <- theta
function(x) t * x
}
theta <- 5
g <- f(theta)
# g is now a function that multiplies its argument by 5
g(2)
#[1] 10
# Now try to modify theta in the global environment
theta <- 6
# g doesn't change
g(2)
#[1] 10