manipulation des trois points de suspension comme paramètre formel
Bonjour,
j'ai une fonction f ayant '...' comme paramètre formel
Code:
f<- function(...) { }
Je voudrais que cette fonction retourne une liste dont les éléments sont les paramètres éffectifs reçus à l'appel, mais présentés de la mamière suivante:
1) tout paramètre effectif passé sous la forme f( , v, ) où v est une variable du programme se présente sous la forme v=v dans la liste de sortie, autrement dit je voudrais obtenir une liste de sortie list( , v=v, ), dans laquelle le nom v de la variable devient le nom d'un élément dont la valeur est la valeur de v.
2) tout autre parmètre effectif (qu'il soit passé sous la forme f( , nom=valeur, ) ou simplement f( , valeur, ) reste inchangé dans la liste de sortie
Exemple
Code:
1 2 3 4 5
|
> w<-c(2,4,6,8,10,12,14)
> x<-c("a","b")
> y<-1:3
> z<-f(p1=7, w, p2=x, c(1,4,9), y) |
Dans cet exemple, l'appel à f me sort une liste référencée par la variable z. Je voudrais donc avoir:
z$p1 vaut 7,
z$w vaut c(2,4,6,8,10,12,14),
z$p2 vaut c("a","b")
z[[4]] vaut c(1,4,9)
et z$y vaut 1:3
autrement dit z <- list(p1=7, w=w, p2=x, c(1,4,9), y=y)
Comment coder la fonction f?
Merci de votre aide