環境和功能

函式內宣告的變數僅存在於該函式內(除非傳遞)。

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