Tôi đang cố gắng viết một hàm, giới hạn phạm vi của các biến R. Ví dụ:Giới hạn phạm vi biến
source("LimitScope.R")
y = 0
f = function(){
#Raises an error as y is a global variable
x = y
}
Tôi nghĩ thử nghiệm môi trường biến, nhưng không thực sự chắc chắn về cách thực hiện điều này.
tại sao
tôi dạy R để undergrads. Trong vài thực hành đầu tiên của họ, một vài trong số họ luôn quên đi phạm vi thay đổi, vì vậy các chức năng được gửi của họ không hoạt động. Ví dụ: tôi luôn nhận được một cái gì đó như:
n = 10
f = function(x){
#Raises an error
#as I just source f and test it for a few test cases.
return(x*n)
}
Tôi đã theo sau một chức năng nhanh chóng có thể 'tắt' phạm vi. Như bạn có thể tưởng tượng nó không phải là đặc biệt mạnh mẽ, vì nó sẽ chỉ được cung cấp cho một vài thực tế.
Không quan tâm, tại sao bạn muốn thực hiện việc này? –
Tôi đã thêm một phần trong câu trả lời về lý do tại sao tôi muốn làm điều này. – csgillespie
Xem thêm http://stackoverflow.com/questions/6216968/r-force-local-scope –