Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何更改从函数中声明的变量的值?_Function_Variables_Rstudio_Overwrite - Fatal编程技术网

Function 如何更改从函数中声明的变量的值?

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”的变量。然后您已经编写了一个函数“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 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