V1:假設函數f(x, ...)
和g(x , ...)
可以傳遞不同的參數。如果我要使用它們來定義一個新函數,我可以通過...
運算符來定義參數嗎?作爲一個簡單的例子:R:如何使用...傳遞參數到多個函數定義良好?
f1 = function(x, n = 1) x + n
g1 = function(x, m = 1) x + m
f = function(x, ...) f1(x, ...)
g = function(x, ...) g1(x, ...)
h = function(x, ...) {
fgList = list()
fgList[["f"]] = f(x, ...)
fgList[["g"]] = g(x, ...)
return(fgList)
}
h(1:4)
# $f
# [1] 2 3 4 5
# $g
# [1] 2 3 4 5
h(1:4, n = 2)
# Error in g1(x, ...) : unused argument (n = 2)
該參數n
被向下傳遞到功能f
g
和,但它僅用於功能f
明確定義。我想減輕這一點。
V2:如果它們是我定義的函數,那麼Hong Ooi的解決方案就完美了。
此解決方案是否可以擴展用於沒有...
參數的預定義函數,或者是否可以將...
參數「添加」到沒有一個的預定義函數?例如:
h = function(x, ...) mean(x, ...) * median (x, ...)
h(1:4, test = 1)
## Error in median(x, ...) : unused argument (test = 1)
V2:你總是可以做'均值(X,...)* {功能(Y,...) median(y)}(x,...)'但是我覺得如果函數沒有使用這些額外的參數來定義'...',那麼我會小心地使用它。 – baptiste