Tôi có hàm f() có một số tham số được đặt tên. Nó gọi hàm g() và tôi muốn chuyển tất cả các tham số của f cho nó. Điều này có thể không?Truy cập tất cả các đối số hàm trong R
dùng ... chỉ bao gồm các đối số thêm:
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);
Tôi nghĩ formals() là câu trả lời, nhưng nó chỉ có vẻ là tên đối số, không phải giá trị của họ!
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);
Có thể không? Cảm ơn.
Hãy xem mã cho 'lm' và' glm' để xem cách thực hiện. –
@HongOoi Cảm ơn; nó được thực hiện với match.call (tức là giống như câu trả lời của Anton), mặc dù IIUC nó chọn chỉ truyền một số arg, chứ không phải tất cả chúng. –