Tôi có thể tìm tài liệu về cách sử dụng các ...
hàm ở đâu? Ví dụ sẽ hữu ích.
Tôi có thể tìm tài liệu về cách sử dụng các ...
hàm ở đâu? Ví dụ sẽ hữu ích.
Câu trả lời:
Từ được sử dụng để mô tả ...
là "dấu chấm lửng." Biết được điều này sẽ giúp tìm kiếm thông tin về cấu trúc dễ dàng hơn. Ví dụ: lần truy cập đầu tiên trên Google là một câu hỏi khác trên trang web này: Làm thế nào để sử dụng tính năng dấu chấm lửng của R khi viết hàm của riêng bạn?
dots
, ví dụ như các trang trợ giúp này được đặt tên ?dots
và "tỉnh lược" thậm chí không được đề cập trên trang
?dots
không hoạt động đối với tôi, nhưng ?'...'
có.
Một ví dụ nhỏ để bạn bắt đầu.
f <- function(x, ...)
{
dots <- list(...) #1
if(length(dots) == 0) return(NULL)
cat("The arguments in ... are\n")
print(dots)
f(...) #2
}
f(1,2,3,"a", list("monkey"))
Hàm f
lưu trữ tất cả trừ đối số đầu vào đầu tiên trong biến dấu chấm lửng. Để truy cập nội dung của nó, dễ nhất là chuyển nó thành danh sách (1). Tuy nhiên, việc sử dụng chính là để truyền các đối số cho các hàm con, không yêu cầu chuyển đổi (2).
f()
được gọi nhiều lần với các đối số khác nhau mỗi lần. Chạy mã và xem liệu bạn có thể hiểu điều gì đang xảy ra hay không.
...length()
cũng
Bạn nên xem phần "Định nghĩa ngôn ngữ R", phần 2.1.9 Dấu chấm-chấm-chấm . Nó đi kèm với cài đặt R. Chạy help.start()
trong một phiên tương tác để đưa ra trợ giúp HTML và nhấp vào liên kết Định nghĩa ngôn ngữ R. Bạn cũng có thể sử dụng phiên bản PDF hoặc HTML từ trang web chính.
Dù sao, ...
được sử dụng để so khớp các đối số chính thức không xác định của một hàm.
args(sapply)
function (X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
NULL
sapply(mtcars, mean, trim = .5)
mpg cyl disp hp drat wt qsec vs am gear
19.200 6.000 196.300 123.000 3.695 3.325 17.710 0.000 0.000 4.000
carb
2.000
Như bạn thấy, tôi đã vượt qua trim = .5
mặc dù nó không được chỉ định như một đối số chính thức của sapply
hàm.
(lưu ý rằng ví dụ này là nhỏ, bạn có thể sử dụng sapply(mtcars, median)
để đạt được kết quả tương tự)
trim
là một đối số của mean
hàm. Bên ...
trong sapply
là cơ chế trim
được chuyển đến mean
.
...
là R tương đương với đầu vào từ khóa python của (def func(**kwargs)
)