R switch 使い方 スクリプトの書き方

R の switch文は、「複数の条件」とそれに「対応した処理」をまとめて記述できるので、if文よりも簡潔にかけます。R の switchの条件は、文字列で書かれたラベルで判断します。R の switch文の「書き方」と使い方を、サンプルを交えてまとめます。

スポンサーリンク



R – switch文による条件判断

R – switch文の書き方

R の switch文では、式に対する複数の条件を判断することができます。条件を増やしたい時は「条件」を追加します。条件には、文字列(ラベル)を使います。「その他の条件」は、「ラベルなし」で指定することができます。

case文の一般的な形式

value <- switch(式
                "ラベル1" = 対応した処理,
                "ラベル2" = 対応した処理,
                "ラベル3" = 対応した処理,
                ...,
                条件に合致しない場合の処理
         )

switch文の判断

R の switch文では、対応する処理を準備している複数の条件に対して、「どの条件に一致したか?」を『式とラベルの文字列比較』で判断します。

プログラム

test_switch.r
#! /usr/bin/Rscript

argv=commandArgs(T)                    # 引数の処理

items <- switch(argv[1],               # 指定された条件
	  "1"  = c("dataA", "dataB"),  # 「1」が指定されたとき
	  "2"  = c("dataA", "dataC"),  # 「2」が指定されたとき
	  "3"  = c("dataB", "dataC"),  # 「3」が指定されたとき
	  "AB" = c("AAA",   "BBB"),    # 「AB」が指定されたとき
	  c("x", "y"))                 # 「それ以外」を指定

# 引数をファイル名で利用 
png(paste("fig", argv[1], ".png", sep=""))

# 引数で決まったデータ名c("データ名", "データ名")を軸に設定
plot(rnorm(100), rnorm(100), xlab=items[1], ylab=items[2])   

dev.off()

プログラム実行

test_switch
$ chmod +x test_switch.r
$ ./test_swtich.r 1 # 引数に「1」を指定
fig1.png を生成

$ ./test_swtich.r AB # 引数に「AB」を指定
figAB.png を生成

$ ./test_swtich.r ABC # 引数に「ABC」を指定(条件外)
figABC.png を生成
fig1

fig1

figAB

figAB

figABC

figABC

プログラムについて

test_switch.rでは、R の switchの条件を数種類ためしてみました。コマンドライン引数で与えられた文字と、条件のラベルを判断して分岐処理を行います。

文字が「1」〜「3」または「AB」の文字列に合致したとき、対応するxy軸のラベルを使ってpng画像を出力します。条件に該当しないデフォルトでは、x軸に「x」・y軸に「y」と表示するようにしました。ラベルだけの切り替えを行いましたが、他にも色々と応用できる処理です。

R オススメの1冊

様々な分野でRの応用が見られるようになってきている。本書は、PerlやRubyと同様に、Rを一般のプログラミング言語として解説している。Rのプログラミングの知識を高めたい読者にとって有用な書となることだろう。

Amazon 商品の説明 より

【関連】 RやPython、Linux関連のオススメの書籍をまとめています!

スポンサーリンク