【问题标题】:Return specific value from function从函数返回特定值
【发布时间】:2021-07-20 23:14:30
【问题描述】:

我想从一个函数中返回一个特定的变量,但是这个变量没有被使用,例如:

fx <- function(x) { z <- 39  } 

我用 get 函数尝试过,但没有得到值,也许有一个更简单的解决方案。 如何从这个函数返回“z”?

【问题讨论】:

    标签: r function environment-variables


    【解决方案1】:

    通常我们不想将变量直接注入调用者,而是我们更愿意将其作为函数的值返回,但假设您确实需要这个:

    fx <- function(envir = parent.frame()) invisible(assign("z", 39, envir))
    
    fx()
    z
    ## [1] 39
    

    【讨论】:

      【解决方案2】:

      我不清楚你想做什么。如果您想使用函数将带有值的变量 z 添加到全局环境中,则 &lt;&lt;- 运算符会执行此操作。例如

      fx <- function(x){(z <<- x)}
      fx(39)
      [1] 39
      

      在全局环境中创建变量z,其值为39。但不建议在函数内部使用&lt;&lt;- 运算符。而是将全局变量分配给函数的返回值。例如:

      fx <- function(x){(retVal <- x)}
      z <- fx(39)
      z
      [1] 39
      

      【讨论】:

      • 请注意,在从另一个函数调用 fx 的情况下,此答案中定义的 fx 不一定会将 z 放入调用者中。
      猜你喜欢
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      相关资源
      最近更新 更多