Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 函数返回包中数据集的源文档_R_R Package - Fatal编程技术网

R 函数返回包中数据集的源文档

R 函数返回包中数据集的源文档,r,r-package,R,R Package,假设我已经开发了一个包。在我的软件包中,我有一个名为df的数据集,它是使用roxygen2记录的: #”标题 #' #“描述 #' #“细节 #' ... ... #“@source La La。 #“@source Fa。 ... ... 这当然会生成man/df.Rd,其中包括源部分: 。。。 \来源{ 啦啦啦。 发发。 } ... 现在,我想用这个数据集创建一个简单的函数,返回df的源代码。我可以从readLines()提取、处理和返回源代码,但是,我不知道如何在此处引用文件路径

假设我已经开发了一个包。在我的软件包中,我有一个名为
df
的数据集,它是使用roxygen2记录的:

#”标题
#' 
#“描述
#' 
#“细节
#' 
...
...
#“@source La La。
#“@source Fa。
...
...
这当然会生成man/df.Rd,其中包括源部分:

。。。
\来源{
啦啦啦。
发发。
}
...
现在,我想用这个数据集创建一个简单的函数,返回
df
的源代码。我可以从
readLines()
提取、处理和返回源代码,但是,我不知道如何在此处引用文件路径,也不知道如何访问man/df.Rd


get_sourceuser2554330的评论引导我进一步探索使用可用函数的机会。通过
工具::
。然而,正如他们所指出的,解析起来要复杂得多。因此,我探索了不同的途径,改变这种方式更容易、更简单。定义一个输出源代码的函数,然后在roxygen2文档和我想要的函数中使用它


raw\u source您可以使用以下函数获取
.Rd
文档:

getsource <- function(fn) {
  fn <- rlang::ensym(fn)
  utils:::.getHelpFile(help(deparse(fn)))
}

getsource(help)
#> \title{Documentation}\name{help}\alias{help}\keyword{documentation}\description{
#>   \code{help} is the primary interface to the help systems.
#> }\usage{
#> help(topic, package = NULL, lib.loc = NULL,
#>      verbose = getOption("verbose"),
#>      try.all.packages = getOption("help.try.all.packages"),
#>      help_type = getOption("help_type"))
#> }\arguments{
#>   \item{topic}{usually, a \link{name} or character string specifying the
#>    topic for which help is sought.  A character string (enclosed in
#>    explicit single or double quotes) is always taken as naming a topic.
#> 
...
getsource\code{help}是帮助系统的主要接口。
#>}\用法{
#>帮助(主题,package=NULL,lib.loc=NULL,
#>verbose=getOption(“verbose”),
#>try.all.packages=getOption(“help.try.all.packages”),
#>帮助类型=获取选项(“帮助类型”))
#>}\参数{
#>\item{topic}{通常是一个\link{name}或字符串,用于指定
#>寻求帮助的主题。字符串(包含在
#>显式单引号或双引号)始终作为主题命名。
#> 
...
由(v0.3.0)于2020-09-04创建


这也适用于自定义软件包的源文档。

但是,通常没有安装
man
目录,因此无法工作。
Rd
文件被处理为二进制格式。您仍然可以读取它,这比读取
Rd
文件困难得多。请参阅帮助页面
?工具::Rd_db
例如。噢,谢谢!我将在对其排序后检查并更新。@CaldWebList,您有机会测试此解决方案吗?