[英]R equivalent of Matlab's 'persistent'
說我有一個matlab
函數:
function y = myfunc(x)
persistent a
a = x*10
...
對於persistent a
語句, R
的等效語句是什么? <<-
或assign()
?
這是一種方法:
f <- local({ x<-NULL; function(y) {
if (is.null(x)) { # or perhaps !missing(y)
x <<- y+1
}
x
}})
f(3) # First time, x gets assigned
#[1] 4
f() # Second time, old value is used
#[1] 4
發生的情況是local
圍繞x<-NULL
和函數聲明創建了一個新環境。 因此,在函數內部,它可以到達x
變量並使用<<-
分配給它。
您可以找到以下函數的環境:
e <- environment(f)
ls(e) # "x"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.