web-dev-qa-db-fra.com

Création d'une fonction dans R avec un nombre variable d'arguments,

Lors de la création d'une fonction dans R, nous spécifions généralement le nombre d'arguments comme

function(x,y){
}

Cela signifie qu'il ne prend que deux arguments. Mais lorsque le nombre d'arguments n'est pas spécifié (pour un cas, je dois utiliser deux arguments mais un autre cas, je dois utiliser trois arguments ou plus) comment pouvons-nous gérer ce problème? Je suis assez nouveau en programmation, donc l'exemple sera grandement apprécié.

9
Lzz0
d <- function(...){
    x <- list(...) # THIS WILL BE A LIST STORING EVERYTHING:
    sum(...)       # Example of inbuilt function
}

d(1,2,3,4,5)

[1] 15 
8
Onyambu

Vous pouvez utiliser ... pour spécifier un nombre supplémentaire d'arguments. Par exemple:

myfun <- function(x, ...) {
    for(i in list(...)) {
        print(x * i)
    }
}

> myfun(4, 3, 1)
[1] 12
[1] 4
> myfun(4, 9, 1, 0, 12)
[1] 36
[1] 4
[1] 0
[1] 48
> myfun(4)
5
C. Braun