环境和功能

函数内声明的变量仅存在于该函数内(除非传递)。

x <- 1

foo <- function(x) {
    y <- 3
    z <- x + y
    return(z)
}

y

错误:找不到对象’y'

传递给函数然后重新分配的变量将被覆盖,但仅在函数内部

foo <- function(x) {
    x <- 2
    y <- 3
    z <- x + y
    return(z)
}

foo(1)
x

1

在比该函数更高的环境中分配的变量存在于该函数中,而不被传递。

foo <- function() {
    y <- 3
    z <- x + y
    return(z)
}
    
foo()

4