Google
WWWを検索
サイト内を検索

RStudioなどの統合開発環境(IDE)を使うことが多い昨今ですが、IDEでも対話モードのウィンドウが開いていたりするので、知っておくほうが便利でしょう。

1 履歴

打ち込んだコマンドの履歴を見ることができます。

history() # 履歴を表示

OSの環境変数R_HISTSIZEで記憶する行数を設定できます。また、

history(pattern = "^a") # 正規表現で絞込み

と言うように正規表現で絞り込みができます。

1.1 履歴の保存

デフォルトでは、終了時に履歴を自動保存し、起動時に読み込みます。Rの起動オプションに--no-saveをつけておくと、終了時に履歴は保存されません。また--no-restoreをつけておくと、起動時に読み込みなせん。

起動オプションに関わらず、savehistory("filename.txt")で履歴を保存し、loadhistory("filename.txt")読み込むことができます。savehistoryはテキストファイルで保存されるので、無計画に打ち込んだコマンドを保存して整理するのにも使えます。

2 ヘルプ

関数や制御構文にはだいたい対応するヘルプがあります。

?lm
?"if"
help("else")

関数の引数や利用例などをすぐ確認できるので便利です。

2.1 ヴィネット

パッケージ添付のリファレンスはvignetteヴィネットと呼ばれます。vignetteはPDFやHTMLによる長めの説明で、分析の統計学的な背景などから説明されていたりもしますが、必須ではないので無いことが多いです。

よく使われているggplot2パッケージには複数のvignetteの添付があります。

ブラウザーで一覧を見てから選択する場合は

browseVignettes("ggplot2")

で、特定のvignetteを直接参照する場合は

vignette("ggplot2-specs", package = "ggplot2")

とコマンドを打ちます。

2.2 デモ

パッケージにはデモンストレーションを添付することができ、稀に利用されています。

標準のgraphicsパッケージには一応ありますが、

demo("graphics")

機能を網羅しておらず、残念なことに。

3 ソースコードの読み込み

テキストファイルに書いたソースコードを読み込んで実行できます。

source("source.R")

UTF-8に統一されつつある昨今ですが、引数fileEncodingで文字コードを指定して読み込むこともできます。

echo=TRUEをつけると、実行前にコードを表示し、画面出力の抑制をしません。

引数chdirで実行するディレクトリを指定できます。また、local=TRUEをつけると、環境を分離してワークスペースにオブジェクトを追加しないようにできます。

4 テキストエディタの呼び出し

対話モードでテキストエディタを呼び出すことができます。環境変数EDITORや引数で指定しない場合、エディタはOSの標準エディタが呼ばれます。

4.1 ソースファイルを編集

ファイルに書いておいて、sourceで読み出して実行ができます。

file.edit("source.R")

4.2 関数を編集

関数を指定すると、ファイルを作らないでも編集できます。なお、ワークスペースに存在しない関数を指定すると、新規編集になります。

fix(func)

5 応答による画面表示のファイル書き出し

sink関数で操作からの応答をファイルに書き出すことができます。

# 記録開始
sink(file = "example.txt", append = FALSE) # append = TRUEにすると追記
# 回帰分析と推定結果の表示
x <- 1:10
y <- x + rnorm(10)
summary(lm(y ~ x))
# 記録終了
sink()

これでsummaryの表示がexample.txtに保存されます。

6 オブジェクトの保存と読み込み

Rのあらゆる変数は同様に保存と読み込みができます。つまり、ベクトル、行列、配列、リスト、データフレーム、環境、関数、モデル式といったオブジェクトは、saveRDSで保存して、readRDSで読み込むことができます。

fnc1 <- function(a, b) (a + 1)*(b - 1) # 関数を定義
saveRDS(fnc1, "fnc.RDS") # 関数を保存
rm(fnc1) # 関数を消す
fnc2 <- readRDS("fnc.RDS") # 関数を読み込む
fnc2(2, 3) # 関数を使う
[1] 6

他のプログラミング言語でも似たようなことはできるのですが、パッケージなしで同じぐらい広範なオブジェクトを同じぐらい容易にできるものはちょっと思い当たりません。

7 ワークスペースの保存と読み込み

現在のワークスペースのすべてのオブジェクトを保存したい場合はsave.imageを用いることができます。読み込むときはloadを使います。

n <- 100
x <- 1:n
z <- runif(n, min = 1, max = 100)
y <- 1 + x - z + rnorm(n, sd = 10)
save.image(file = "example.RData")
ls() # 作成したオブジェクトを確認
[1] "n" "x" "y" "z"
rm(list = ls()) # 前オブジェクト消去
ls() # 空になったのを確認
character(0)
load(file = "example.RData")

ls()をすると、消したオブジェクトn,x,z,yが復活しているのが分かります。 なお、quit(save = "yes")とすると、自動でsave.imageが呼び出されます。

8 Rの終了

quitは省略形のqがあります。

q("no") # ワークスペースを保存する場合は"yes",デフォルトは保存するか聞く