ヘルプ機能

概要

講義: 10 分
演習: 10 分
質問
  • R のヘルプ機能はありますか?

目標
  • 関数や特別な演算子に関する R のヘルプファイルにアクセス出来るようになりましょう。

  • CRAN のタスクビューを使って課題が解決出来るようなパッケージの特定が出来るようになりましょう。

  • あなたの仲間にヘルプを求められるようになりましょう。

ヘルプファイルを読む

R、そしてその他のパッケージには、関数のヘルプファイルが用意されています。 一般的な関数のヘルプを検索する構文は、(インタラクティブなRセッションで)自分の名前空間に読み込まれた パッケージに存在する特定の関数名、「function_name」を以下のように使って下さい:

?function_name
help(function_name)

これで、RStudioにヘルプページ(Rの場合は、画面に簡素なテキスト)が表示されます

それぞれのヘルプページは、セクションに分けられます:

関数によって、違うセクションがあるかもしれませんが、知っておくべき主要なものは以上でしょう。

ヒント:ヘルプファイルを読む

Rの気が滅入る点は、多くの関数があるという点です。 自分が使う全ての関数の正しい使い方を覚えるのは不可能とまでは言いませんが、かなり大変でしょう。 ありがたいことに、ヘルプファイルのおかげで、そんなことをせずに済むのです。

特別な演算子

特別な演算子を検索するためには、引用符を使いましょう:

?"<-"

パッケージについてのヘルプを入手する

多くのパッケージには、「ビニエット(vignette)」があります。これは、使い方の説明や詳細な例を掲載する資料です。 引数なしに、vignette() と入力すると、インストールされているパッケージの全てのビニエットの一覧が表示されます。 vignette(package="package-name") と入力すると、package-nameについての全てのビニエットの一覧が表示され、 vignette("vignette-name") と入力すると、指定されたビニエットが開きます。

もしパッケージにビニエットがひとつもない場合、通常 help("package-name") と入力するとヘルプが表示されます。

うすら覚えの関数の場合

関数がどのパッケージに入っているか、またはスペルが定かではないとき、あいまい検索をすることもできます:

??function_name

どうしていいか分からない場合

関数やパッケージが分からない場合、CRAN Task Viewsという 分野ごとにまとめられたパッケージのリストがあります。 このページから探し始めるといいかもしれません。

コードがうまく動作しない:仲間の助けが必要な場合

関数がうまく動かない場合、十中八九、探している問の答えは、 Stack Overflowに掲載されいます。 [r] タグを使って検索ができます。

もし答えが見つからない場合、仲間に質問をする際に 役に立つ関数がいくつかあります:

?dput

これで、あなたが使っているデータを誰にでもコピー・アンド・ペーストしてRセッションで使える 形式にすることができます。

sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin17.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] checkpoint_0.4.3 stringr_1.3.1    knitr_1.20      

loaded via a namespace (and not attached):
[1] compiler_3.5.1 magrittr_1.5   tools_3.5.1    stringi_1.2.4 
[5] evaluate_0.11 

これは、現在使っている R のバージョン、そして読み込まれている全てのパッケージを表示させる関数です。 他の人が問題点を再現し、バグを見つける際にこの情報が役立つこともあります。

チャレンジ1

それでは、c 関数のヘルプを見てみましょう。以下を演算した際、 どのようなベクトルが作成されると思いますか:

c(1, 2, 3)
c('d', 'e', 'f')
c(1, 2, 'f')

Solution to Challenge 1

この c() 関数は、全ての要素が同じ型になるようにベクトルを生成します。 最初の事例では、要素は整数型で、二番目の例では文字列型、 三番目の例は文字列です。つまり、整数値は「強制的に」 文字列に変換されるのです。

チャレンジ2

paste 関数のヘルプを見てみましょう。後でこれが必要になります。 sepcollapse の引数の違いは何でしょうか?

チャレンジ2の解答

paste() 関数のヘルプを見るには、以下を使いましょう:

help("paste")
?paste

sepcollapse の違いは、少しややこしいです。 pasteの関数は、それぞれの長さには関係なく、引数をいくつも受け入れることができます。 sep の引数は、結合した文字の間に入る文字列を指定するもので、デフォルトはスペースです。 その結果、paste に与えられた一番長い引数の長さを持つベクトルが表示されます。 一方、collapse は、指定された区切り値を用いて、結合された後の要素が連結されることを指します。 その結果、一つの文字列が表示されます。 例:

paste(c("a","b"), "c")
[1] "a c" "b c"
paste(c("a","b"), "c", sep = ",")
[1] "a,c" "b,c"
paste(c("a","b"), "c", collapse = "|")
[1] "a c|b c"
paste(c("a","b"), "c", sep = ",", collapse = "|")
[1] "a,c|b,c"

(より詳細な情報は、 ?paste のヘルプページの最下部にある例を参照するか、 example('paste')を試してみましょう)

チャレンジ3

ヘルプを使って、列が「\t」(タブ)で区切られ、小数点が「.」(ピリオド)で分けられているcsvファイルを読み込む関数(及び関連する母数)を見つけて下さい。 csv fileファイルからデータを読み込むもので、列が「\t」(タブ)で分けられていて、 国によって小数点を表す記号(コンマかピリオドか)が違うため、 小数点以下を分けている記号をチェックするのは、 様々な国の人達と作業をする際など、特に重要になります。 (つまり、コンマかピリオドかの違う)からです。 ヒント:csvに関係する関数として ??csv を使いましょう。

チャレンジ3の解答

小数点がピリオドのタブで区切られたファイルを読む標準的なR関数は、 read.delim() です。他にも、 read.table(file, sep="\t") を使うことができます。read.table()では、ピリオドが、 デフォルトとなっていますが、データにハッシュ(#)の文字がある場合などは、comment.char の引数を変更する必要があることもあります。 例えば、データにハッシュ(#)の文字がある場合 などです。

その他の参照先

まとめ

  • R の help() でオンラインヘルプを使用する。