R の非常に優れた機能の 1 つは、関数のソース コードがワークスペース内のオブジェクトとしてアクセスできることです。
したがって、たとえば のソース コードを知りたい場合は、コンソールにgrep()
入力してコードを読み取るだけです。grep
同様に、コンソールにgrep
入力してドキュメントを読むこともできます。?grep
質問: 関数のドキュメントのソース コードを入手するにはどうすればよいですか? つまり、.rd ファイルはどこにありますか?
よく書かれたコードのソースを研究することは、イディオムを学ぶ優れた方法だと私は思います。今、私はいくつかの非常に特殊なケースのドキュメントの書き方を研究したいと思っています。私の R インストールでは、どの基本 R 関数のドキュメント ファイルも見つけることができませんでした。おそらく間違った場所を探していたのでしょう。
ベストアンサー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")