我試圖編寫一個函數,它限制了R變量的範圍。例如,限制變量範圍
source("LimitScope.R")
y = 0
f = function(){
#Raises an error as y is a global variable
x = y
}
我想過測試變量環境,但並不確定如何做到這一點。
的原因
我教R鍵本科生。在他們的第一對實踐中,他們中的一些人總是忘記變量作用域,所以他們提交的函數不起作用。舉例來說,我總是得到類似的東西:
n = 10
f = function(x){
#Raises an error
#as I just source f and test it for a few test cases.
return(x*n)
}
我在一個快速的函數後會'關閉'範圍。正如你可以想象的那樣,它不一定非常強大,因爲它只是爲少數實際情況提供的。
出於興趣,您爲什麼要這麼做? – 2010-07-19 13:13:59
我在答案中添加了一個關於爲什麼要這樣做的部分。 – csgillespie 2010-08-06 16:18:29
參見http://stackoverflow.com/questions/6216968/r-force-local-scope – 2011-11-17 01:33:07