3 回答

TA貢獻1805條經驗 獲得超9個贊
一個讓您入門的小例子。
f <- function(x, ...)
{
dots <- list(...) #1
if(length(dots) == 0) return(NULL)
cat("The arguments in ... are\n")
print(dots)
f(...) #2
}
f(1,2,3,"a", list("monkey"))
函數,f將第一個輸入參數以外的所有參數存儲在省略號變量中。為了訪問其內容,最簡單的方法是將其轉換為列表(1)。但是,主要用途是將參數傳遞給子函數,而無需進行轉換(2)。

TA貢獻1946條經驗 獲得超3個贊
您應該轉到“ R語言定義”的第2.1.9節Dot-dot-dot。它與R安裝捆綁在一起。help.start()在交互式會話中運行以啟動HTML幫助,然后單擊“ R語言定義”鏈接。您也可以從主站點使用PDF或HTML版本。
無論如何,...用于匹配函數的未指定形式參數。
args(sapply)
function (X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
NULL
sapply(mtcars, mean, trim = .5)
mpg cyl disp hp drat wt qsec vs am gear
19.200 6.000 196.300 123.000 3.695 3.325 17.710 0.000 0.000 4.000
carb
2.000
如您所見,trim = .5盡管沒有將其指定為sapply函數的形式參數,但我還是通過了。
(請注意,此示例是微不足道的,可以sapply(mtcars, median)用來實現相同的結果)
- 3 回答
- 0 關注
- 524 瀏覽
添加回答
舉報