在R中,一个非常简洁的特性是函数的源代码可以作为工作空间中的对象访问。
因此,如果我想知道源代码,例如,grep()
,我可以简单地在控制台中输入grep
并读取代码。
同样,我可以通过在控制台中输入?grep
来读取grep
的文档。
问题:如何获得函数文档的源代码?换句话说,我在哪里可以找到.rd文件?
我发现研究编写良好的代码的源代码是学习习惯用法的极好方法。现在我想学习如何为一些非常具体的案例编写文档。在我的R安装中,我没有找到任何基本R函数的文档文件。也许我找错地方了。
似乎您可以从已安装的r中提取Rd源。我使用R-devel (2011-09-05 r56942)。
获取基本包的Rd数据库。
library(tools)
db <- Rd_db("base")
搜索"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")