0
我想創建一個函數,該函數使用已定義的變量,以便在更改此變量時,所創建函數的功能不會更改。通常,當您在環境中使用在該環境中定義的變量創建函數時,該函數將在該環境中調用該變量時查找該變量的值。例如:使用局部變量創建R函數使用其值
> x = 3
> f = function() x + 3
> f()
[1] 6
> x = 4
> f()
[1] 7
我想創建f
使得其僅僅是函數3 + 3
,總是返回6.有沒有簡單的方法R中做到這一點?我知道我可以手動分配功能的相關部分,即
> body(f)[[2]] = x
> f
function()
4 + 3
這種策略是相當繁瑣的,雖然,因爲它需要你手動完成和更改所有出現。有更容易的方法嗎?
定義'x'裏面的功能,以及。現在'f'必須超出本地範圍才能找到'x'。或者使用一個命名參數'f < - function(x = 3)x + 3' –