2011-09-21 8 views
15

Rでは、関数のソースコードがワークスペース内のオブジェクトとしてアクセス可能であるという非常にきれいな機能があります。Rのヘルプ/ドキュメント.rdソースファイルにアクセスするには?

たとえば、grep()などのソースコードを知りたい場合は、コンソールにgrepと入力してコードを読み取ってください。

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

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

よく書かれたコードのソースを調べることは、イディオムを学習する優れた方法です。今私はいくつかの非常に特殊な事例についての文書を書く方法を研究したいと思っています。私は私のRのインストールで基本R機能のいずれかのドキュメントファイルを見つけることができませんでした。おそらく私は間違った場所を探していたでしょう。

+0

統計と分析http://stats.stackexchange.com – robermorales

+0

に特別に専用のスタックサイトでは、私はこれが行わ見たことがないが、RDAからRdファイルを抽出する方法があった場合、それはいいだろうがありますファイル。 .Rdファイルが必要な場合は、パッケージをダウンロードできます(または基本パッケージの場合はRソース)。 –

+3

@robermoralesはい、私はそれを認識しています、ありがとうございます。しかし、これはプログラミングの質問ではなく、統計的な分析の質問で、CrossValidatedについて話題にならないでしょう。 – Andrie

答えて

26

インストールされている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") 
+0

+1これは素晴らしいです、ありがとう。 – Andrie

関連する問題