2012-07-01 16 views
15

Tôi đang viết một gói nhưng một cảnh báo liên tục R CMD check ngăn tôi hoàn thành gói và đăng nó lên CRAN. Tôi sử dụng roxygen2 cho tài liệu nội tuyến, mặc dù điều đó có thể không phải là nguyên nhân gốc của lỗi.R Cảnh báo kiểm tra CMD: Các chức năng/phương pháp có sử dụng trong đối tượng tài liệu ... nhưng không có trong mã

Nếu bạn biết phải làm gì để loại bỏ cảnh báo này, tôi hoàn toàn có thể tìm ra cách làm việc đó bằng cách sử dụng roxygen2.

Làm thế nào tôi có thể loại bỏ các cảnh báoFunctions/methods with usage in documentation object ... but not in codetừ kiểm tra gói của tôi?


Các R CMD check cảnh báo:

* checking for code/documentation mismatches ... WARNING 
Functions/methods with usage in documentation object 'names<-' but not in code: 
    names<- 

Chức năng và roxygen tài liệu:

#' Updates names and variable.labels attribute of surveydata. 
#' 
#' @name names<- 
#' @rdname names 
#' @aliases names<- names<-.surveydata 
#' @param x surveydata object 
#' @param value New names 
#' @method names<- surveydata 
#' @usage names(x) <- value 
"names<-.surveydata" <- function(x, value){ 
    invisible(NULL) 
} 

Kết quả là tập tin .rd tài liệu:

\name{names<-} 
\alias{names<-} 
\alias{names<-.surveydata} 
\title{Updates names and variable.labels attribute of surveydata.} 
\usage{ 
    names(x) <- value 
} 
\arguments{ 
    \item{x}{surveydata object} 

    \item{value}{New names} 
} 
\description{ 
    Updates names and variable.labels attribute of 
    surveydata. 
} 

Tôi đã kiểm tra chéo hồ sơ của tôi với các tài liệu cho names<- trong cơ sở R, và có vẻ như giống hệt nhau:

\title{ The Names of an Object} 
\name{names} 
\alias{names} 
\alias{names.default} 
\alias{names<-} 
\alias{names<-.default} 
\keyword{attribute} 
\description{Functions to get or set the names of an object.} 

câu hỏi liên quan (nhưng tôi đã thực hiện các gợi ý và vẫn không có may mắn):


Tôi sẽ làm gì sai? Làm thế nào tôi có thể loại bỏ cảnh báo này khỏi gói séc?

+0

Tôi khá chắc chắn đây không phải là vấn đề roxygen2 nhưng là một vấn đề nảy sinh khi bạn có một phương pháp trong gói của bạn mà chung chung nằm trong gói khác.Tôi khá chắc chắn rằng tôi đã chạy vào các vấn đề tương tự trong quá khứ nhưng tiếc là tôi không thể nhớ các giải pháp ngay bây giờ :-( –

+1

Tôi không nghĩ rằng bạn muốn phần '@ usage'. bản chất, bạn muốn sử dụng để bao gồm '\ method {names} {surveydata} (x) <- value' mà * nên * được tạo bởi phần' @ method'. Nếu nó không phải là sau khi bạn xóa '@ usage' dòng, sau đó thêm một dòng '@ usage' rõ ràng có chứa các bên trên? –

+1

@GavinSimpson Cách tiếp cận đó dường như hoạt động, cảm ơn bạn, tuy nhiên, theo mặc định,' roxygen' không tạo ra cách sử dụng đó, do đó tuyên bố ghi đè. Đây là một yêu cầu tính năng lỗi/mới – Andrie

Trả lời

12

Các \usage phần trong file Rd cần bao gồm những điều sau đây:

\method{names}{surveydata}(x) <- value 

Nếu điều này không được tự động chèn vào bởi dòng @method (Tôi đoán rằng sẽ chỉ làm tăng thêm \method{names}{surveydata}(x)?) Sau đó bạn cần một rõ ràng @usage phần bao gồm phần trên. Một cái gì đó như

#' @usage \\method{names}{surveydata}(x) <- value 

Tôi cũng sẽ thay đổi @name@alias phần để tham khảo các phương pháp một cách rõ ràng không phải là chung chung như rằng sẽ xung đột với các tập tin Rd R :: cơ sở.

Về cơ bản, cảnh báo đến từ thực tế là gói của bạn không chứa hàm "names<-" nhưng bạn đang sử dụng tính năng này trong \usage{}.

+0

+1 Điều này có vẻ để làm việc - Tôi không còn nhận được bất kỳ cảnh báo 'R CMD check' nào nữa. Cảm ơn bạn cũng về các mẹo bổ sung về '@ name' và' @ alias'. Tôi sẽ nghiên cứu kỹ những điều này - chúng có thể bị xáo trộn theo cách này trong nỗ lực của tôi để đáp ứng cơ chế kiểm tra gói! – Andrie

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