Một số lần có một hàm có số đối số tùy ý. Ví dụ, chức năng bootstrapPage
của gói sáng bóng. Nếu tôi có một data.frame và tôi muốn tạo ra một widget cho một hàng, thì tôi đã không tìm ra một cách khá tốt để truyền số lượng đối số theo số hàng của data.frame. Cho đến nay, tôi tạo kịch bản và sử dụng mẹo của eval(parse(text="..."))
Thay thế đối số bằng một danh sách trong R
Thực tế, cấu trúc của đối số được chuyển đến hàm trong R (khóa và giá trị) tương tự như list
, vì vậy tôi tự hỏi liệu có cách nào vượt qua đối số như một danh sách trong R. đặc biệt
hơn, nếu tôi có một hàm f
và một danh sách argv
, là có một cách để vượt qua các đối tượng trong argv
-f
theo sự kết hợp của các tên của argv
và tên của các đối số của f
và vị trí trong argv
và vị trí trong đối số của f
?
Ví dụ, chúng ta hãy
f <- function(a, b) a + b
argv <- list(a=1, b=2)
Làm thế nào tôi nên vượt qua argv
-f
tương đương với f(a=argv$a, b=argv$b)
?
Hoặc nếu chúng ta có:
f <- function(a, b, ...) { # some codes }
argv <- list(a = 1, b = 2, 3, 4, 5)
Làm thế nào tôi nên vượt qua argv
-f
tương đương với f(a=argv$a, b=argv$b, argv[[3]], argv[[4]], argv[[5]])
?
Cảm ơn!
đẹp bộ sưu tập các ví dụ. Đây là một tính năng của ngôn ngữ thực sự xứng đáng được điều trị tốt hơn trong phần "giới thiệu về R". –
+1 cho các ví dụ tuyệt vời –