2011-05-04 5 views

Répondre

18

Vous devez diriger vers "R Langue Définition", section 2.1.9 Dot-dot-dot. Il est livré avec l'installation de R. Exécutez help.start() dans une session interactive pour apporter l'aide HTML, et cliquez sur Le lien de définition de langue R. Vous pouvez également utiliser la version PDF ou HTML du site principal.

Quoi qu'il en soit, ... est utilisé pour faire correspondre des arguments formels non spécifiés d'une fonction.

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 

Comme vous pouvez le voir, je suis passé trim = .5 si ce n'est pas comme argument formel de sapply fonction.

(notez que cet exemple est trivial, vous pouvez utiliser sapply(mtcars, median) pour obtenir le même résultat)

+1

Si ce n'est pas spécifié, comment savez-vous que c'est légal ou valide? – qed

+0

@qed 'trim' est un argument de la fonction' mean'. Le '...' dans 'sapply' est le mécanisme pour que' trim' soit passé à 'mean'. –

40

Un petit exemple pour vous aider à démarrer.

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

La fonction, f, stocke toutes, mais le premier argument d'entrée dans la variable ellipsis. Pour accéder à son contenu, il est plus facile de le convertir en liste (1). L'utilisation principale est cependant de passer des arguments aux sous-fonctions, ce qui ne nécessite aucune conversion (2).

Questions connexes