我正在尝试编写一个函数,它限制了R变量的范围.例如,
source("LimitScope.R")
y = 0
f = function(){
#Raises an error as y is a global variable
x = y
}
Run Code Online (Sandbox Code Playgroud)
我想过测试变量环境,但不确定如何做到这一点.
为什么呢
我教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)
}
Run Code Online (Sandbox Code Playgroud)
我正在完成一个能够"关闭"范围的快速功能.你可以想象它不一定特别强大,因为它只是为少数实用提供.
我不确定您是否想要这样做,但该local()函数应该有所帮助,库也应该有所帮助codetools。
在你的例子中,尝试
f = local( function() { ... }, baseenv())
Run Code Online (Sandbox Code Playgroud)
它并不完全符合您的要求,但它应该会让您更接近。
| 归档时间: |
|
| 查看次数: |
2046 次 |
| 最近记录: |