J

Rで自作の関数や変数をワークスペースに表示させない方法

Rでは自作の関数や変数を作成することができるが、これらは通常のRスクリプトから読み込むと、ワークスペースls()で表示されるオブジェクト郡)に表示されてしまい、煩雑になりがちである。 それを解決する方法は、自作の関数や変数をパッケージ化してしまうことである。

目的

自作関数・変数をワークスペースに表示させずに定義したい。

方法

自作パッケージを作成する。

手順

1. コード

まず、自作関数・変数を記述したRスクリプトファイルを準備する。 ファイルは複数可。 ここでは、code1.Rcode2.Rを作成したとする。 これらを作業用ディレクトリ(例えば~/tmp/)に置く。

2. スケルト

作成するパッケージ(mypackage)のテンプレートを作成する。

setwd("~/tmp") # 作業用ディレクトリに移動
library(tools)
package.skeleton("mypackage", code_files = c("code1.R", "code2.R"))

~/tmp/mypackageが作成されるはず。ここには以下のファイルが生成されている。

ディレクトリ・ファイル名 内容
man/ マニュアル(ヘルプ)が入っているディレクトリ
R/ 自作関数らのRコードが入っているディレクトリ
NAMESPACE 名前空間
DESCRIPTION パッケージの説明
Read-and-delete-me 読んだら捨てて良し(捨てなくても良し)

3. マニュアル

manファイルは各関数、各変数ごとに一つ一つ作成されている。 これの3, 4行目あたりの\title部分を完成させる。 というのも、manファイルの\title部分が空だとエラーになるためだ。

\title{
%%   ~~ data name/kind ... ~~
%%%%%%%%%%%%%%%%%%%%
%%% タイトルを書く %%%
%%%%%%%%%%%%%%%%%%%%
}

4. パッケージ化

ターミナルを起動して、以下を実行

% cd ~/tmp/
% R CMD INSTALL mypackage

5. テスト

Rを起動して、以下を実行

library(mypackage)
ls()

character(0)と表示されるはず。それでも自作関数や変数は使える状態であることを確認しよう。

結論

自作関数・変数を、ワークスペースに表示させずに、作成したい場合は、パッケージ化させてしまうとスッキリする。

参考

パッケージの作成 | LinuxまたはWinでRのパッケージをビルド、作成する方法

私的パッケージ作成法 - RjpWiki