我首先定义了新变量x,然后x在其体内创建了需要的函数(而不是参数).见下面的代码
x <- c(1,2,3)
f1 <- function() {
x^2
}
rm(x)
f2 <- function() {
x <- c(1,2,3)
f1()
}
f(2)
Error in f1() : object 'x' not found
Run Code Online (Sandbox Code Playgroud)
当我删除x并定义f2了首先定义x然后执行的新函数时f1,它会显示x未找到的对象.
我只是想知道为什么这不起作用以及如何克服这个问题.我不想x成为名字作为参数f1.
请提供适当的标题,因为我不知道这是什么问题.
makeF <- function(){
x <- c(1,2,3)
f1 <- function() {
x^2
}
f1
}
f1 <- makeF()
f1() #returns 1 4 9
Run Code Online (Sandbox Code Playgroud)
x在全球范围内没有,但f1仍然知道x它所定义的环境.