//間瀬茂 COLOR(red){SIZE(30){必要な関数を探すこつ}} #contents ~ * 自分の使用環境で探す [#f7a688b8] ** キーワード検索関数 help.search() [#i83eb516] R の多様な関数を使いこなすには、使えそうな関数を要領よく探すこつが要ります。例えば「ベクトル場のグラフィックスを描きたい」とします。平面上の点から矢印を描けば良いわけですが、それに使えるどんな関数があるのか分からないとします。矢印は arrow ですから、先ず R のキーワード検索関数 ''help.search()'' を使い > help.search("arrow") とします。キーワードは二重引用符で囲む必要があります((結構面倒なので、?hogeでヒットない場合はhelp.search("hoge")を提案してくれるので、それをコピーペーストすると楽です。))。すると Help files with alias or title matching 'arrow' using fuzzy matching: arrows(base) Add Arrows to a Plot Type 'help(FOO, package = PKG)' to inspect entry 'FOO(PKG) TITLE'. と表示されます。これはキーワードをふくむ関数が base パッケージに一つあったことを意味しています。(検索は現在使用中の機械にインストールされているすべてのパッケージ中から行なわれますから、こういう時のためにとりあえず使う予定のない追加パッケージも手あたり次第インストールしておくとよいかも。)次に関数 ''arrows()'' はどういうものか感触を得るために、 > example(arrows) で例示用コードを実行します。COLOR(red){''par(ask=TRUE)'' を先に一度実行しておく}と、複数のグラフィックス出力画面が一気に流れ去ることを防ぎ、画面を順にゆっくり点検することができます。使えそうだなとなったら > ?arrows # または help(arrows) (二重引用符は不要) で関数の説明と、最後に付いている例示用コードを眺めます。すると、''arrows()'' は - 直前の高機能作図関数の出力に矢印を加える関数であること、 - 引数としてベクトルが使えるので一つ一つ描く必要が無いこと などが分かります。また、同様の関数として矢印の代わりに線分を描く関数 ''segments()'' があることも分かります。 ''help.seach()'' は正規表現による曖昧な検索も受け付けます > help.search("ab*cd") # 前後にそれぞれ文字列 ab, cd を含む文字列を検索 ** オブジェクトのキーワード検索関数 apropos(), find() [#k161a585] ''help.search()'' に似ている関数に、ほとんど同じ機能をもつ ''apropos()'', ''find()'' があります。 これはキーワードを含むオブジェクトを検索します。キーワードは二重引用符で囲んでも、囲まなくても構いません。[[正規表現]]による検索も可能です(この際は二重引用符が必要)。違いは、''apropos()'' は現在ロードされているライブラリ中から、キーワードを含むオブジェクトだけを検索対象とすることです。 > apropos("lm") # lm を含むオブジェクトを検索 > apropos(ls) # ls を含むオブジェクトを検索 > length(apropos(".")) # すべてのオブジェクトの総数 > apropos("^pr") # pr で始まるすべてのオブジェクトの検索 > apropos("^..?$") # 2文字のオブジェクトを検索 > apropos("pr$") # pr で終るオブジェクトを検索 > apropos("ub.{0,}a") # ub と a の間に零個以上の文字列を含むパターン > apropos("ub.{1,}a") # ub と a の間に1個以上の文字列を含むパターン **組み込み関数の一覧を得る builtins() [#a1a3dfba] R 1.7.0 版で 1632 種類 > builtins() [1] "~" "||" [3] "|" "{" [5] "zip.file.extract" "zapsmall" [7] "yinch" "xyz.coords" [9] "xyinch" "xy.coords" (途中省略) [1627] "%*%" "%%" [1629] "$<-" "$" [1631] "!=" "!" ** インストールされているパッケージの一覧を得る search() [#wc063059] 現在使用中の計算機にインストールされているパッケージの一覧を得るためには、次の命令を使います。 > search() > searchpaths() # インストール場所の絶対パスを得る ** あるライブラリ中のオブジェクトの一覧を見る library(help=パッケージ名) [#z3f01a26] もちろんそのライブラリが既にインストールされている必要があります。 > library(gstat) # ライブラリ gstat をロード > library(help=gstat) # gstat 中のオブジェクト(関数、データセット)の一覧を得る * 検索サイトで探す [#z92d3cb8] ** R site search でキーワード検索 [#a7d4ee79] [[R site search:http://finzi.psych.upenn.edu/search.html]] R 関連ドキュメントからの最大の全文検索システム *** RSiteSearch()というコマンドもあります。 [#b113a6e6] > RSiteSearch("BUGS") # ブラウザが起動しBUGSの検索結果を表示 いろいろなオプションがあるので、ヘルプを参照。ブラウザを変更するには、環境変数R_BROWSERを変更する。 ** もう一つの検索エンジン [#q2879ea5] [[Rseek:http://www.rseek.org/]] ** S-Plus/R の関数のカテゴリー化されたリスト [#l9298173] [[S-Plus/R Function Finder:http://biostat.mc.vanderbilt.edu/s/finder/finder.html]] ** インターネット (Google) で検索する [#vf6aae8f] R のマニュアルや公式メイリングリストの過去記事からキーワード検索するには、 - [[CRAN:http://cran.r-project.org/]] のホームページにある検索エンジンを使う、 - [[google:http://www.google.com/webhp?hl=ja]] で検索先サイトを指定して検索。 例えば google でキーワード rpart, NA を含む文書、記事を検索するには次のようなキーワードを使います。 site:r-project.org rpart NA また用例を探すには R のファイル形式を指定します。例えばplotの場合次のようにgoogleに入力します。拡張子が r という名前のファイルをネットで検索できます。 filetype:r plot ** 中間さんの CRAN code search by gonzui を試す [#w2eadd28] キーワードを含む R 関係のコードを検索してくれます。~ [[CRAN code search by gonzui:http://rgonzui.nakama.ne.jp/CRAN]]