2011-10-06 14 views
5

Otrzymuję błąd z roxygenize(), którego nie mogę zrozumieć. Mam pakiet moich różnych funkcji, w których pliki .Rd są generowane przez roxygen.roxygen2 "Błąd: titlerequires a value"

Błąd to Error: titlerequires a value, co sugeruje, że nie ma znacznika @title. W pliku kmmisc-package.R znajduje się jednak znacznik @title, więc nie jestem pewien, na czym polega problem.

kmmisc-package.R zawiera:

##' 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 

Używam R 2.13.2 z roxygen2 2.1 tylko zainstalowane z CRAN. Kompletny sessionInfo() jest w GIST w https://gist.github.com/1268056

Edytuj

AT @ Andrie sugestią, teraz mam

#' 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 

który nadal wytwarzające ten sam błąd.

+0

Właśnie zauważony że 'maintainer' nie ma' @ '. Czy to robi różnicę? – Andrie

+0

Nie sądzę. Mogę coś przeoczyć, ale, o ile wiem, mam taką samą podstawową strukturę jak doktorzy tlenu: https://github.com/klutometis/roxygen/blob/master/R/roxygen.RI nie mieć przykłady lub też, ale nie mogę myśleć, że to ma znaczenie. – kmm

+0

Jeszcze jedna sugestia: uaktualnij do 'roxygen2'. Stwierdziłem, że jest to nieco bardziej wyrozumiałe i pomocne w jego wskazówkach, gdy napotyka błędy w liniach rtęci. – Andrie

Odpowiedz

2

Nie mogę odtworzyć błędu z pierwszego kodu ... Czy otrzymujesz ten sam komunikat o błędzie z roxygenize() dla następującego prostego przykładu?

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

Dodatkowa informacja:

Kod przez @Andrie, #' @aliases kmmisc package-kmmisc, ma @aliases problem. W roxygen2 2.1, #' @aliases a-b, z łącznikiem, generowany jest znacznik Rd \alias{"a-b"}. W tym przypadku kod nie stanowi problemu, ale w innym przypadku wymaga uwagi. Oczywiście, jeśli potrzebujesz cudzysłowów, dodaj #' @aliases a-b.

Więc myślę, że lepiej zastąpić #' @aliases kmmisc package-kmmisc z #' @aliases kmmisc w tym przypadku:

#' 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

To jest to, co chciałem naprawić: https://github.com/klutometis/roxygen/pull/29 Ale tutaj nie widzę żadnego powodu, dla którego tytuł został złamany z powodu niepoprawnych aliasów. –

+0

Przepraszam za dygresję. Poprawiłem swój post. Z niecierpliwością czekam na poprawkę: # 29. –

1

Spróbuj wykonać następujące czynności:

  • Odkomentuj wasze wypowiedzi roxygen. (Może to być SO artefakt, ale każda linia roxygen powinien zacząć # ', czyli jednym #)

  • dokonać następujących zmian w dokumentacji

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

Innymi słowy:

  • Zmień wartość @name
  • Dodaj alias o nazwie kmmisc

Są to jedyne różnice między swoim przykładem i własnej dokumentacji pakietu.

+0

Wciąż mam ten sam błąd z tymi zmianami (zobacz edycję powyżej). Generalnie jednak jest ## 'naprawdę problem? Tak właśnie działa ESS (przynajmniej sądzę, że mam ustawienia domyślne). – kmm

+0

Jeśli "##" działa dla ciebie, to jest wspaniałe i nauczyłem się czegoś. Używam Eclipse, a podświetlanie kodu Roxygen działa tylko z jednym '#' – Andrie

+0

Potwierdzam, że '## '' na pewno działa. Jak powiedział Kevin, jest to domyślny prefiks w Emacs. Nie widzę żadnych oczywistych problemów w kodzie, i faktycznie mogę uruchomić roxygen2 z nim bez żadnych błędów (R 2.13.2 pod Ubuntu). –