2011-11-28 43 views
6

Giả sử tôi viết một gói R nhỏ bao gồm hai hàm có exaclty cùng một đối số ngoại trừ một đối số. Dưới đây là một ví dụ:Tham số mô tả đối số trong tệp .Rd khi sử dụng thẻ roxygen2 @inheritParams

fct1 <- function(r, K){...} 
fct2 <- function(r, p, K){...} 

Trong tài liệu roxygen2 của tôi về chức năng đầu tiên tôi sử dụng các thẻ sau:

#' @param r description of argument r 
#' @param K description of argument K 

Đối với chức năng thứ hai, tôi sử dụng các thẻ sau:

#' @param p description of argument p 
#' @inheritParams fct1 

Sau khi xử lý mã của tôi với roxygenize, tệp .Rd cho hàm fct2 trình bày các đối số theo thứ tự sau: p, r, K. Tôi muốn chúng theo cùng một thứ tự hơn trong phần sử dụng, đó là : r, p, K. Làm thế nào tôi có thể nhận được đơn đặt hàng này mà không cần thay đổi tệp .Rd theo cách thủ công?

Tôi khăng khăng sử dụng @inheritParams để tránh sao chép và dán.

Cảm ơn!

+1

Gửi lỗi tại https://github.com/klutometis/roxygen/issues – hadley

+0

@hadley, có thể báo cáo lỗi mà không có tài khoản trên github không? Cảm ơn – user1069707

+1

No. Nhưng tài khoản là miễn phí và dễ dàng để thiết lập. Rất tiếc, tài khoản là yêu cầu trong những ngày đầy spam này. – hadley

Trả lời

2

Tôi gặp vấn đề tương tự. Bây giờ tôi sử dụng mẹo nhỏ để tránh trật tự đối số sai.

Sử dụng mã (ví dụ trong file .R riêng biệt):

#' Function arguments 
#' 
#' @keywords integral 
#' 
#' @name fargs 
#' 
#' @param r .. 
#' @param p .. 
#' @param K .. 
#' 
#' 
NULL 

và sử dụng

#' @inheritParams fargs 

cho cả hai chức năng.

Trong trường hợp này rất dễ, nhưng trong các ví dụ phức tạp hơn U có thể sử dụng nhiều khối mã này (khối riêng biệt cho mọi loại đối số). Có lẽ nó không phải là cách đơn giản như vậy nhưng bạn không lặp lại cùng một mã bất cứ nơi nào. Tôi lưu trữ khối đó trong tệp args.R riêng biệt để mọi đối số kế thừa nằm trong một tệp.

Cách khác là sử dụng mẫu nhưng phương pháp này không linh hoạt và đối với mỗi khối bạn phải tạo tệp .R riêng biệt. Vì vậy, tôi khuyên bạn nên sử dụng các khối mã simmilary.

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