r语言 - 获取功能的氧气详细信息



是否有一个函数可以获得给定函数的氧气细节?

例如,如果函数是

#' Negate a number
#' @param x some number
#' @output -x negation of input
fun <- function(x) -x

我想这样做:

info <- get_roxygen_info(fun) # <- this is made up for illustration
> info
> list(description = 'Negate a number', param = 'x some number', output = '-x negation of input')

目的是将脚本中的所有函数放入具有其描述的表中。我已经可以部分地使用lsf.str()的组合来获得函数名和formals来获得函数参数。最坏的情况是将脚本解析为文本,这是我想避免的。

您不一定要这样做:在解析文件时并不是保留所有的氧原子标记。如果您可以访问源文件,您可以这样做,并且您可能能够从函数中找到源文件。

例如,如果我将示例放入sample.R并使用默认的keep.source=TRUE源,我可以获得文件名,然后使用Roxygen解析该文件:

library(roxygen2)
filename <- getSrcFilename(fun, full.names = TRUE)
parsed <- parse_file(filename)
thisfn <- which(sapply(parsed, function(block) block$line == getSrcLocation(fun, "line") ))
parsed[[thisfn]]

产生如下输出:

> parsed[[thisfn]]
<roxy_block> [sample.R:4]
$tag
[line:  1] @title 'Negate a number' {parsed}
[line:  2] @param 'x some number' {parsed}
[line:  4] @usage '<generated>' {parsed}
[line:  4] @.formals '<generated>' {parsed}
[line:  4] @backref '<generated>' {parsed}
$call   fun <- function(x) -x
$object <function> 
$topic fun
$alias fun
Warning message:
[sample.R:3] @output is not a known tag 

我让你把你想要的部分摘录出来。

但是我会给出通常的建议:如果你的脚本足够长,你需要一个目录,为什么不把它放在一个小包里呢?然后R会为你做所有组织文档的工作。

相关内容

  • 没有找到相关文章

最新更新