Tengo una función f() que tiene algunos parámetros nombrados. Llama a una función g() y quiero pasarle todos los parámetros de f. es posible?Acceda a todos los argumentos de funciones en R
Usando ... sólo cubre los argumentos adicionales:
f=function(a,callback,b,c,d,...){
z=a-b
callback(z,...)
}
g=function(z,...){
print(list(...)) #Only shows $e
print(z) #-1
print(a,b,c,d) #'a' not found
}
f(1,g,2,3,d=4,e=5);
pensé formales() era la respuesta, pero sólo parece ser nombres de argumentos, no sus valores!
f=function(a,callback,b,c,d,...){
z=a-b
callback(z,formals())
}
g=function(z,...){
args=list(...)[[1]]
print(args$a) #(no output)
print(class(args$a)) #"name"
}
f(1,g,2,3,d=4,e=5);
¿Es posible? Gracias.
Eche un vistazo al código de 'lm' y' glm' para ver cómo se hace esto. –
@HongOoi Gracias; se hace con match.call (es decir, como la respuesta de Anton), aunque IIUC elige transmitir solo ciertos argumentos, no todos. –