ヘルプの利用

最終更新日:2024-11-22 | ページの編集

概要

質問

  • R でどのようにしてヘルプを得ることができますか?

目的

  • 関数や特殊な演算子に関する R のヘルプファイルを読むことができる。
  • 問題を解決するためのパッケージを特定するために CRAN タスクビューを利用できる。
  • 仲間に助けを求める方法を理解する。

ヘルプファイルを読む


R および各パッケージには関数用のヘルプファイルが用意されています。特定のパッケージに含まれる関数についてヘルプを検索する際の一般的な構文は次の通りです:

R

?function_name
help(function_name)

たとえば、write.table() のヘルプファイルを見てみましょう。この関数に似た機能を持つ関数を今後のエピソードで使用します。

R

?write.table()

これにより、RStudio ではヘルプページが表示され、R 本体ではプレーンテキストとして表示されます。

各ヘルプページは次のようなセクションに分かれています:

  • Description(説明): 関数が何をするかの詳細な説明。
  • Usage(使用法): 関数の引数とそのデフォルト値(変更可能)。
  • Arguments(引数): 各引数が期待するデータの説明。
  • Details(詳細): 注意すべき重要な点。
  • Value(戻り値): 関数が返すデータ。
  • See Also(関連項目): 有用な関連関数。
  • Examples(例): 関数の使用例。

関数によってはセクションが異なる場合がありますが、これらが主なポイントです。

関連する関数が同じヘルプファイルを参照する場合があることに注意してください:

R

?write.table()
?write.csv()

これらの関数は非常に似た用途を持ち、引数も共通しているため、パッケージ作者が同じヘルプファイルで文書化していることがよくあります。

ヒント: 実例を実行する

ヘルプページ内の Examples セクションからコードをハイライトして Ctrl+Return を押すと、RStudio コンソールで実行されます。 関数の動作を素早く理解する方法です。

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

R の大きな課題の一つは、利用可能な関数の数が膨大であることです。 すべての関数の正しい使用法を記憶するのは現実的ではありません。 しかし、ヘルプファイルを利用すれば、記憶する必要はありません!

特殊な演算子


特殊な演算子に関するヘルプを検索するには、引用符またはバッククォートを使用します:

R

?"<-"
?`<-`

パッケージに関するヘルプ


多くのパッケージには「ビネット」と呼ばれるチュートリアルや拡張的な例のドキュメントが含まれています。 引数なしで vignette() を実行すると、インストール済みのすべてのパッケージのビネットが表示されます。 特定のパッケージについては vignette(package="パッケージ名") を使用します。 特定のビネットを開くには vignette("ビネット名") を実行します。

パッケージにビネットがない場合は、通常、次のコマンドでヘルプを探せます:

R

help("パッケージ名")

また、RStudio には多くのパッケージ向けに優れた チートシート があります。

関数名の一部を覚えている場合


関数がどのパッケージに属しているか、または正確なスペルがわからない場合、ファジー検索が可能です:

R

??function_name

ファジー検索では文字列の近似一致を検索します。たとえば、作業ディレクトリを設定する関数に「set」が含まれていることを覚えている場合、次のように検索できます:

R

??set

どこから始めるべきかわからない場合


どの関数やパッケージを使用すべきかわからない場合、 CRAN Task Views を利用するとよいでしょう。 これは、パッケージを分野別にグループ化した特別なリストで、出発点として適しています。

コードが動作しない場合: 仲間に助けを求める


関数の使用に問題がある場合、その答えのほとんどはすでに Stack Overflow で回答されています。 [r] タグを使って検索してください。質問の仕方については、Stack Overflow の 良い質問の仕方のページを参照してください。

答えが見つからない場合、以下の便利な関数を使って仲間に助けを求めるとよいでしょう:

R

?dput

この関数は、使用しているデータを他の人が自分の R セッションでコピー&ペーストできる形式に出力します。

R

sessionInfo()

出力

R version 4.4.2 (2024-10-31)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 22.04.5 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0

locale:
 [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8
 [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8
 [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C
[10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C

time zone: UTC
tzcode source: system (glibc)

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

loaded via a namespace (and not attached):
[1] compiler_4.4.2 tools_4.4.2    yaml_2.3.10    knitr_1.48     xfun_0.49
[6] renv_1.0.11    evaluate_1.0.1

この関数は、R の現在のバージョンやロードしているパッケージを表示します。 これは他の人が問題を再現し、デバッグするのに役立ちます。

チャレンジ 1

c 関数のヘルプページを見てください。次のコードを評価した場合、どのようなベクトルが作成されると思いますか?

R

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

c() 関数はすべての要素が同じ型のベクトルを作成します。最初の場合、要素は数値型、 2 番目の場合は文字型、そして 3 番目の場合も文字型です。数値型の値は文字型に「強制変換」されます。

チャレンジ 2

paste 関数のヘルプを見てください。この関数を後ほど使用します。 sep 引数と collapse 引数の違いは何ですか?

paste() 関数のヘルプを見るには以下を実行します:

R

help("paste")
?paste

sepcollapse の違いは少し複雑です。paste 関数は任意の数の引数を受け取り、それぞれが任意の長さのベクトルであることができます。 sep 引数は連結される各項目の間に使用される文字列を指定します(デフォルトはスペース)。 結果は、paste に渡された最も長い引数と同じ長さのベクトルです。 一方、collapse 引数は、連結後の要素を指定された区切り文字を使用して「まとめて結合」することを示します。 その結果、単一の文字列になります。

引数を明示的に指定することが重要です。たとえば sep = "," と入力すると、関数は区切り文字として “,” を使用し、結合する項目としてではないと認識します。

例:

R

paste(c("a","b"), "c")

出力

[1] "a c" "b c"

R

paste(c("a","b"), "c", ",")

出力

[1] "a c ," "b c ,"

R

paste(c("a","b"), "c", sep = ",")

出力

[1] "a,c" "b,c"

R

paste(c("a","b"), "c", collapse = "|")

出力

[1] "a c|b c"

R

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

出力

[1] "a,c|b,c"

(詳細については、?paste ヘルプページの末尾の例を参照するか、example('paste') を試してください。)

チャレンジ 3

ヘルプを使用して、タブ区切り(\t)の列と小数点が “.”(ピリオド)で表される表形式のファイルを読み込むために使用できる関数(および関連するパラメータ)を見つけてください。 特に国際的な同僚と協力している場合、小数点の表記(例:コンマ対ピリオド)は異なる場合があるため、この確認が重要です。 ヒント:??"read table" を使用して表形式データの読み込みに関連する関数を調べてください。

タブ区切りファイルを小数点がピリオドで表される形式で読み込む標準的な R 関数は read.delim() です。 また、read.table(file, sep="\t") を使用することもできます(read.table() のデフォルトの小数点はピリオドです)。 ただし、データファイルにハッシュ(#)文字が含まれている場合は、comment.char 引数を変更する必要があるかもしれません。

その他のリソース


まとめ

  • R のオンラインヘルプを取得するには help() を使用します。