Есть ли глобальный флаг, который может быть установлен для предоставления кода вместе с документацией ROxygen?

Я преподавал класс, в котором у меня были студенты, использующие пакет, который я написал. Теперь, когда класс заканчивается, я хотел бы предоставить им код для каждой из этих функций в соответствии с документацией для этих функций. Есть ли глобальный флаг, который я могу установить для достижения этой цели? Взломать код какой-то?

2 ответа

Решение

Вы можете предварительно обработать ваши файлы R с помощью пакета brew, например

Файл 'foo-tmp.r'

##' a function that doesn't do much 
##'
##' @title foo
##' @param x 
##' @param y 
##' @param z 
##' @return error message
##' @author Baptiste 
##' @examples
##' dontrun{
#<%= cat(paste0("##'", getSrcref(foo), "\n")) %> ##' }
foo <- function(x,  y,  z){
    rnorm(10) == 1
    # inline comment
    .NotYetImplemented()
    " other stuff"
    return(FALSE)
  }

Затем обработайте файл для генерации foo.r

source("foo-tmp.r") # to know what the function is
brew("foo-tmp.r", "foo.r")

с полученным результатом:

##' a function that doesn't do much 
##'
##' @title foo
##' @param x 
##' @param y 
##' @param z 
##' @return error message
##' @author Baptiste 
##' @examples
##' dontrun{
###'function(x,  y,  z){
 ##'    rnorm(10) == 1
 ##'    # inline comment
 ##'    .NotYetImplemented()
 ##'    " other stuff"
 ##'    return(FALSE)
 ##'  }
 ##' }
foo <- function(x,  y,  z){
    rnorm(10) == 1
    .NotYetImplemented()
    " other stuff"
    return(FALSE)
  }

Смотрите этот связанный вопрос. Глобального флага или решения не существует. @baptiste's настолько хорош, насколько это возможно. Ответ устанавливается на вики сообщества в случае изменения этого положения.

Другие вопросы по тегам