2
假設我有一個外部函數,它具有一個數字參數和一個函數本身(內部函數)的參數。我如何將外部函數的數值參數的值作爲參數傳遞給內部函數?考慮這個玩具的例子:將函數參數傳遞給函數本身的其他參數
innerfun <- function(M){
1:M
}
outerfun <- function(x, fun){
x * fun
}
outerfun(x = 3, fun = innerfun(M = 3)) ## works
outerfun(x = 3, fun = innerfun(M = x)) ## error because innerfun can't find 'x'
outerfun(x = 3, fun = innerfun(M = get("x"))) ## doesn't work either...
所以我想要做的就是在那一刻outerfun的參數進行評估,以調用innerfun,使用這些outerfun論點中調用innerfun。任何想法或建議?
謝謝,這可能是最簡單的解決方案。我沒有想到通過傳遞innerfun作爲函數調用而沒有參數來利用R的懶惰評估。一旦innerfun在outerfun體內進行評估(而不是在outerfun的初始化過程中),則更容易傳遞參數。 –
@WolfgangPößnecker與懶惰評價無關 – hadley