簡體   English   中英

R:在上級函數中分配一個值

[英]R: assign a value in a upper-level function

可能是一個簡單的問題,但我自己卻無法解決,使用環境並進行范圍界定仍然使我感到困惑。

我有一個函數,嵌套在一個函數中。 我想要實現的是從其父級中的嵌套函數中分配一個值(使用assign函數,我已經讀到使用<<-可能很危險),並在其中使用它:

myfun <- function(m) {
  m*3*y
  f1 <- function() {
    assign(x = y, value = 2, envir = parent.frame())
  }
  f1()
}

但是,返回錯誤:

Error in myfun(m = 5) : object 'y' not found

另外,如果我有一個函數,嵌套在一個函數中,嵌套在一個函數中,嵌套在一個函數中,等等,並且我想從哪個最低級別的函數中分配值,該怎么辦?

兩點。 在使用y計算之前,需要運行f1() assign函數的x參數采用字符。

myfun <- function(m) {
  f1 <- function() {
  assign(x = "y", value = 2, envir = parent.frame())
  }
  f1()
  m*3*y
}

myfun(5)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM