Có cách nào để nhận các tham số chức năng từ bên trong một hàm không?Nhận danh sách tất cả các tham số chức năng từ bên trong hàm
match.call()
không trả về các tham số có cài đặt mặc định nhưng không bị ghi đè. Ví dụ:
xf <- function (a, b="Hi", c=TRUE) {
print(as.list(match.call(expand.dots=FALSE)))
}
>xf(3)
[[1]]
xf
$a
[1] 3
Tôi đang viết gói có chức năng gọi hàm hiện có nhưng tôi muốn có thể đặt mặc định không có chức năng hiện tại. (Tôi đã lên kế hoạch về việc sử dụng danh sách từ match.call
, đi qua nó vào chức năng khác với do.call
và gửi lại kết quả
Cập nhật:.. Một vấn đề thú vị có liên quan đến phương pháp S3 Tôi tạo ra một phương pháp S3 mới, và sử dụng Câu trả lời của @ Ferdinand.kraft as.list(environment(), all.names=TRUE)
Đối số all.names giữ các tên bắt đầu bằng một số .
trong danh sách, hóa ra phương thức công văn thêm một số đối số vào môi trường hàm, bao gồm .Generic
.Method
và một số đối tượng khác. một trong những câu trả lời khác có thể là giải pháp tốt hơn, nhưng tôi thích sự đơn giản của as.list(environment())
.
làm 'arg s' làm những gì bạn muốn? –