2011-10-06 13 views
5

Tôi nhận được lỗi từ roxygenize() mà tôi không thể hiểu được. Tôi có một gói các chức năng linh tinh trong đó các tập tin .Rd được tạo ra thông qua roxygen.roxygen2 "Lỗi: kiểm tra lại giá trị"

Lỗi là Error: titlerequires a value, điều này gợi ý rằng không có thẻ @title. Tuy nhiên, có một thẻ @title trong tệp kmmisc-package.R, vì vậy tôi không chắc chắn vấn đề là gì.

kmmisc-package.R chứa:

##' Miscellaneous Functions 
##' 
##' \tabular{ll}{ 
##' Package: \tab kmmisc\cr 
##' Type: \tab Package\cr 
##' Version: \tab 0.1-2\cr 
##' Date: \tab 2011-10-06\cr  
##' License: \tab GPL-2\cr 
##' LazyLoad: \tab yes\cr 
##' LazyData: \tab yes\cr 
##' } 
##' 
##' @author Me \email{[email protected]@email} 
##' 
##' Maintainer: Me \email{[email protected]@email} 
##' 
##' @name kmmisc-package 
##' @docType package 
##' @title KM Misc 
##' @keywords package 
##' 
NULL 

Tôi đang sử dụng R 2.13.2 với roxygen2 2.1 chỉ cài đặt lại từ cran. Hoàn chỉnh sessionInfo() là trong ý chính tại https://gist.github.com/1268056

Sửa

Theo gợi ý của @ Andrie của, bây giờ tôi có

#' Miscellaneous Functions 
#' 
#' \tabular{ll}{ 
#' Package: \tab kmmisc\cr 
#' Type: \tab Package\cr 
#' Version: \tab 0.1-2\cr 
#' Date: \tab 2011-09-14\cr  
#' License: \tab GPL-2\cr 
#' LazyLoad: \tab yes\cr 
#' LazyData: \tab yes\cr 
#' } 
#' 
#' @author Me \email{[email protected]@email} 
#' 
#' Maintainer: Me \email{[email protected]@email} 
#' @name package-kmmisc 
#' @docType package 
#' @title KM Misc 
#' @keywords package 
#' @aliases kmmisc package-kmmisc 
#' 
#' 
NULL 

mà vẫn tạo ra các lỗi tương tự.

+0

Tôi chỉ phát hiện rằng 'maintainer' không có' @ '. Điều này làm cho một sự khác biệt? – Andrie

+0

Tôi không nghĩ vậy. Tôi có thể nhìn thấy một cái gì đó, nhưng, theo như tôi có thể nói, tôi có cấu trúc cơ bản giống như các tài liệu roxygen: https://github.com/klutometis/roxygen/blob/master/R/roxygen.RI không có những ví dụ hoặc seealso, nhưng tôi không thể nghĩ rằng vấn đề. – kmm

+0

Một đề xuất khác: nâng cấp lên 'roxygen2'. Tôi tìm thấy điều này để được nhiều hơn một chút tha thứ và hữu ích trong các gợi ý của nó khi nó gặp lỗi trong các dòng roxygen. – Andrie

Trả lời

2

Tôi không thể sao chép biểu mẫu lỗi mã đầu tiên của bạn ... Bạn có nhận được thông báo lỗi giống nhau từ roxygenize() đến ví dụ đơn giản sau không?

#' A test function 
#' 
#' Description 
#' 
#' Details 
#' 
#' @param x numeric number 
f1 <- function(x) { 
    x 
} 

Một thông tin bổ sung:

Mã bởi @Andrie, #' @aliases kmmisc package-kmmisc, có @aliases problem. Trong roxygen2 2.1, #' @aliases a-b, có dấu gạch nối, tạo thẻ được trích dẫn Rd \alias{"a-b"}. Trong trường hợp này mã không có vấn đề, nhưng trong trường hợp khác đòi hỏi một số sự chú ý. Tất nhiên, nếu bạn cần thẻ được trích dẫn, bạn thêm #' @aliases a-b.

Vì vậy, tôi nghĩ rằng nó tốt hơn để thay thế #' @aliases kmmisc package-kmmisc với #' @aliases kmmisc trong trường hợp này:

#' Miscellaneous Functions 
#' 
#' \tabular{ll}{ 
#' Package: \tab kmmisc\cr 
#' Type: \tab Package\cr 
#' Version: \tab 0.1-2\cr 
#' Date: \tab 2011-09-14\cr 
#' License: \tab GPL-2\cr 
#' LazyLoad: \tab yes\cr 
#' LazyData: \tab yes\cr 
#' } 
#' 
#' @author Me \email{[email protected]@email} 
#' 
#' Maintainer: Me \email{[email protected]@email} 
#' @name package-kmmisc 
#' @aliases kmmisc 
#' @docType package 
#' @title KM Misc 
#' @keywords package 
NULL 
+0

Đây là những gì tôi muốn sửa chữa: https://github.com/klutometis/roxygen/pull/29 Nhưng ở đây tôi không thấy bất kỳ lý do tại sao tiêu đề đã bị hỏng do bí danh không chính xác. –

+0

Xin lỗi vì sự phân tích. Tôi đã sửa lại bài viết của mình. Tôi đang mong chờ sửa chữa: # 29. –

1

Hãy thử như sau:

  • Bỏ ghi chú báo cáo roxygen của bạn. (Điều này có thể là một vật phẩm SO, nhưng mỗi dòng roxygen nên bắt đầu với # ', tức là một đơn #)

  • Tận dụng những thay đổi sau đây để các tài liệu

 
    #' @name package-kmmisc 
    #' @aliases kmmisc package-kmmisc 

Nói cách khác:

  • Thay đổi giá trị @name
  • Thêm bí danh được gọi là kmmisc

Đây là sự khác biệt duy nhất giữa ví dụ của bạn và tài liệu gói của riêng tôi.

+0

Tôi vẫn gặp lỗi tương tự với các chỉnh sửa này (xem chỉnh sửa ở trên). Nói chung, mặc dù, ## 'thực sự là một vấn đề? Đó là những gì ESS làm theo mặc định (ít nhất tôi nghĩ rằng tôi có các thiết lập mặc định). – kmm

+0

Nếu '##' hoạt động cho bạn, điều đó thật tuyệt vời và tôi đã học được điều gì đó. Tôi sử dụng Eclipse và mã Roxygen làm nổi bật chỉ hoạt động với một '#' – Andrie

+0

duy nhất tôi có thể xác nhận '## '' chắc chắn hoạt động. Như Kevin đã nói, đây là tiền tố mặc định trong Emacs. Tôi không thấy bất kỳ vấn đề rõ ràng trong mã, và thực sự tôi có thể chạy roxygen2 với nó mà không có bất kỳ lỗi nào (R 2.13.2 theo Ubuntu). –