19

R の優れた機能の 1 つは、関数のソース コードがワークスペース内のオブジェクトとしてアクセスできることです。

したがって、たとえば、のソース コードを知りたい場合は、コンソールに入力してコードを読むgrep()だけです。grep

同様に、コンソールgrepに入力してドキュメントを読むことができます。?grep

質問: 関数のドキュメントのソース コードを入手するにはどうすればよいですか? つまり、.rd ファイルはどこにありますか?

よく書かれたコードのソースを調べることは、イディオムを学ぶ優れた方法だと思います。今、私はいくつかの非常に特殊なケースのドキュメントを書く方法を勉強したいと思っています. 私の R インストールでは、ベース R 関数のドキュメント ファイルを見つけることができませんでした。おそらく私は間違った場所を探していました。

4

1 に答える 1

34

インストールされているRからRdソースを抽出できるようです。私はR-devel(2011-09-05 r56942)を使用しています。

基本パッケージのRdのデータベースを取得します。

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

RdDBの名前で「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")
于 2011-09-21T07:54:24.910 に答える