是否有一个全局标志可以设置为提供代码和ROxygen文档?

时间:2013-03-03 15:53:48

标签: r roxygen literate-programming roxygen2

我教过一堂课,让学生们使用我写过的书包。现在该类已经结束了,我想为它们提供与这些函数文档内联的每个函数的代码。我可以设定一个全球旗帜来实现这个目标吗?某种代码破解?

2 个答案:

答案 0 :(得分:1)

您可以使用brew包预处理R文件,例如

档案'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)
  }

答案 1 :(得分:0)

this related question。没有全球旗帜或解决方案。 @ baptiste's就像它一样好。如果这种状况发生变化,答案设置为社区维基。