2011-05-04 42 views

回答

18

你應該頭部到「R語言定義」,部分2.1.9點 - 點 - 點。它與R安裝捆綁在一起。在交互式會話中運行help.start()以帶來HTML幫助,並單擊R語言定義鏈接。您也可以使用主站點上的PDFHTML版本。

無論如何,...用於匹配函數的未指定形式參數。

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)達到相同的結果)

+1

如果沒有指定,你怎麼知道它是合法的或有效的? – qed 2013-08-03 20:10:18

+0

@qed'trim'是'mean'函數的參數。 'sapply'中的'...'是'trim'被傳遞給'mean'的機制。 – 2015-03-16 10:34:02

40

一個小例子,讓你開始。

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)。