2014-02-04 7 views
1

Чтобы продемонстрировать минимальный случай, скажем, у меня есть следующий пакет:Roxygen2 - «аргумент нулевой длины» ошибка при документировании ссылочного класса

#' @docType package 
#' @import methods 
#' @title MyTitle 
#' @description MyDescription 
#' @details MyDetails 
#' @export 
A <- setRefClass("A") 

Когда я roxygenizeRStudio, перед «Build & Reload») , Я получаю:

==> roxygenize('.', roclets=c('rd', 'collate', 'namespace')) 

* checking for changes ... ERROR 

Error in process.docType(partitum) : 
    Roclet processing error in block Test1.R:7 
argument is of length zero 

Что случилось? Как устранить эту ошибку?

Моя установка:

  • Roxygen2 3.1.0
    • Использование roxygen для генерации (в RStudio):
      • Rd файлы
      • Разобрать поле
      • NAMESPACE файл
    • Автоматически roxygenising при запуске (в RStudio):
      • R CMD проверить
      • Источник и бинарный пакет строит
      • Build & Reload
  • R: 3.0.2 (Frisbee Sailing)
  • IDE: RStudio 0.98.490
  • ОС: Windows 8.1
+0

Почему у вас есть пакет '@ docType'? В противном случае я не вижу ничего плохого в вашем блоке roxygen. – hadley

+0

@ Хэддли - потому что я строю пакет, так что не должен ли я иметь пакет @doctype? – mchen

+0

'@ docType' относится к типу документации, который здесь будет классом (но может быть опущен, поскольку он автогенерируется). Вы также обычно не указываете ярлык '@ title',' @ description' и '@ details' – hadley

ответ

0

У меня была похожая ситуация, когда

#' @export 
A <- setRefClass("A") 

причиной той же ошибки, которые я решил с помощью:

A <- setRefClass("A") 
#' @export 
A 

Любопытно, что это было в файле, который я не модифицируется в то время , так что это все еще немного загадка ...