Есть ли глобальный флаг, который может быть установлен для предоставления кода вместе с документацией 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 настолько хорош, насколько это возможно. Ответ устанавливается на вики сообщества в случае изменения этого положения.