2016-03-04 26 views
8

Tôi đang viết một gói R và tôi đang ghi lại tất cả các chức năng của mình bằng roxygen2. Tuy nhiên, tôi không muốn tất cả các chức năng xuất hiện trong hướng dẫn sử dụng của gói. Làm cách nào tôi có thể chỉ định các chức năng nào sẽ xuất hiện trong hướng dẫn sử dụng gói, hoặc những chức năng nào sẽ không xuất hiện?Loại trừ chức năng khỏi hướng dẫn gói R

Tôi biết rằng đặt tên cho hàm có dấu chấm đứng đầu, ví dụ: .f <- function() thay vì f <- function() là một giải pháp. Có giải pháp nào khác không?

+2

Tại sao phải ghi lại chúng nếu bạn không muốn chúng trong sách hướng dẫn? – nrussell

+0

Bởi vì nó rất hữu ích cho tôi khi nhớ lại những chức năng nào, và đối với những người khác có thể muốn sử dụng các chức năng "ẩn". Tôi tin rằng tôi đã thấy ví dụ trong các gói khác mà tôi không thể tìm thấy trang trợ giúp của hàm bằng cách viết '? Function_name' trong bảng điều khiển sau khi nhập gói, nhưng tôi có thể thấy trang trợ giúp nếu tôi đã viết'? Pkgname: :: function_name'. Tôi có thể nhớ sai mặc dù. –

+2

Nhưng các hàm được truy cập bằng ':::' không được xuất từ ​​các gói - điều này thường có nghĩa là tác giả không có ý định cho khách hàng sử dụng hàm. Nói chung các chức năng như vậy không được ghi chép - ví dụ: 'tools :::. is_ASCII'. Tôi sẽ đoán rằng nếu bạn gặp phải một chức năng không xuất khẩu * có * có tài liệu, rất có thể nó trước đây là một chức năng được xuất (và được ghi lại), và bị xóa khỏi danh sách xuất khẩu trong phiên bản sau. – nrussell

Trả lời

16

Tôi đã bỏ lỡ các chi tiết sau đây trong cuốn sách tuyệt vời R packages bởi Hadley Wickham (trong phần nói về tài liệu hướng dẫn đối tượng):

@keywords TỪKHÓA1 TỪKHÓA2 ... thêm từ khóa được chuẩn hóa. Từ khóa là tùy chọn, nhưng nếu có, phải được lấy từ danh sách được xác định trước được tìm thấy trong tệp.path (R.home ("doc"), "TỪ KHÓA").

Nói chung, từ khóa không hữu ích ngoại trừ @keywords nội bộ. Sử dụng từ khóa nội bộ sẽ xóa chức năng khỏi chỉ mục gói và vô hiệu hóa một số thử nghiệm tự động của chúng. Thông thường sử dụng @keywords nội bộ cho các chức năng mà các nhà phát triển khác đang quan tâm mở rộng gói của bạn, nhưng không phải hầu hết người dùng.

Vì vậy, thêm @keywords internal vào tài liệu hàm roxygen2 dẫn đến chức năng không xuất hiện trong hướng dẫn gói/chỉ mục, trong khi vẫn làm cho trang trợ giúp có thể truy cập được sau khi tải gói.

+0

+1 cho đốm '@keywords internal.' Tôi không muốn mang những người có chức năng trợ giúp nội bộ của mình, cảm ơn! – keberwein

Các vấn đề liên quan