Function 如何更改从函数中声明的变量的值?
假设在代码中有一个名为“ENV.myvar”的变量。然后您已经编写了一个函数“myfun”,它有一些目标并返回一个对象(例如数组)。ENV.myvar用于计算,由于某种原因,在计算过程中对其进行了修改Function 如何更改从函数中声明的变量的值?,function,variables,rstudio,overwrite,Function,Variables,Rstudio,Overwrite,假设在代码中有一个名为“ENV.myvar”的变量。然后您已经编写了一个函数“myfun”,它有一些目标并返回一个对象(例如数组)。ENV.myvar用于计算,由于某种原因,在计算过程中对其进行了修改 ENV.myvar <- 0; myfun <- function(in1,in2,...,inN){ #declaring the output object fun.myarray <- c(0,0,0); #some code ... #here ENV.myvar i
ENV.myvar <- 0;
myfun <- function(in1,in2,...,inN){
#declaring the output object
fun.myarray <- c(0,0,0);
#some code
...
#here ENV.myvar is modified for some reason
ENV.myvar = ENV.myvar + 20;
#code that works on fun.myarray
...
#return the object
fun.myarray
}
ENV.myvar是的,您可以,尽管不建议这样做,因为函数的预期行为不是在其环境之外更改任何内容。不过,你可以这样做:
myvar <- 0
myf <- function() {
assign("myvar", 10, envir = parent.env(environment()))
return("Value of 'myvar' changed to 10 in parent environment")
}
myf()
myvar
# [1] 10
myvar是的,您可以,尽管不建议这样做,因为函数的预期行为不是在其环境之外更改任何内容。不过,你可以这样做:
myvar <- 0
myf <- function() {
assign("myvar", 10, envir = parent.env(environment()))
return("Value of 'myvar' changed to 10 in parent environment")
}
myf()
myvar
# [1] 10
myvar