【问题标题】:How to access the help/documentation .rd source files in R?如何访问 R 中的帮助/文档 .rd 源文件?
【发布时间】:2011-09-21 06:53:38
【问题描述】:

在 R 中,一个非常简洁的特性是函数的源代码可以作为工作区中的对象访问。

因此,如果我想知道例如grep() 的源代码,我只需在控制台中输入grep 并阅读代码即可。

同样,我可以通过在控制台中输入?grep 来阅读grep 的文档。

问题:如何获取函数文档的源代码?换句话说,我在哪里可以找到 .rd 文件?

我发现研究编写良好的代码的来源是学习习语的绝佳方式。现在我想研究如何为一些非常具体的案例编写文档。我无法在我的 R 安装中找到任何基本 R 函数的文档文件。可能我找错地方了。

【问题讨论】:

  • 有一个专门用于统计和分析的堆栈站点stats.stackexchange.com
  • 我从未见过这样做过,但如果有办法从 rda 文件中提取 Rd 文件,那就太好了。如果你想拥有 .Rd 文件,你可以随时下载一个包(或者在基本包的情况下,R 源代码)。
  • @robermorales 是的,我知道,谢谢。但这是一个编程问题,而不是统计分析问题,因此在 CrossValidated 上是题外话。
  • 您的意思是您希望代码从已安装的 R 版本中为您提供 Rd 源代码吗?我只是寻找R之外的来源,例如[R 源代码]\src\library\base\man\grep.Rd
  • @mdsumner 代码给我这将是一等奖。但也感谢您提供指向正确文件夹以查找文档文件的链接。 (显然我的操作系统文件搜索技能需要一些改进!)

标签: r rd


【解决方案1】:

看来您可以从已安装的 R 中提取 Rd 源。我正在使用 R-devel (2011-09-05 r56942)。

获取基础包的 Rd 数据库。

library(tools)
db <- Rd_db("base")

在 Rd DB 的名称中搜索“grep.Rd”,例如:

grep("grep.Rd", names(db), value = TRUE)
[1] "d:/murdoch/recent/R64/src/library/base/man/agrep.Rd"
[2] "d:/murdoch/recent/R64/src/library/base/man/grep.Rd" 

只为 grep 获取 Rd 对象。

db[grep("/grep.Rd", names(db))]
$`d:/murdoch/recent/R64/src/library/base/man/grep.Rd`
\title{Pattern Matching and Replacement}
\name{grep}
\alias{grep}
\alias{grepl}
\alias{sub}
\alias{gsub}
\alias{regexpr}
\alias{gregexpr}
\alias{regexec}
\keyword{character}
\keyword{utilities}
\description{
\code{grep}, \code{grepl}, \code{regexpr} and \code{gregexpr} search
for matches to argument \code{pattern} within each element of a
character vector: they differ in the format of and amount of detail in
the results.

\code{sub} and \code{gsub} perform replacement of the first and all
matches respectively.
}\usage{
...
...

有一些工具可以从 Rd 对象中获取组件,因此您可以将搜索细化为关键字或名称,请参阅 ?Rd_db 中的示例并尝试一下。

lapply(db, tools:::.Rd_get_metadata, "name")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-29
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 2017-05-08
    相关资源
    最近更新 更多