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冊

[amazonjs asin=”4274067432″ locale=”JP” title=”プログラミングR―基礎からグラフィックスまで”]

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

Amazon 商品の説明 より

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

スポンサーリンク





ピックアップ記事

  1. R 使い方 グラフの色 自作のカラーパレットとデフォルトのカラーパレット

    グラフを描画する際、色の組み合わせを1つ1つ考えるのは面倒ですよね。Rには、あらかじめ色の組み合わ…
  2. tidyverse – distinct関数でデータフレームの重複行を削除 dplyrパッケージ

    tidyverseでデータフレームの重複行の削除を行う場合、dplyrパッケージのdistinct…
  3. awk split サンプルでわかる列の分割とセパレータ(文字・正規表現)の指定方法

    awkのsplit関数は、セパレータを指定して文字列を分割することができます。セパレータには文字や…

人気記事

  1. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  2. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…
  3. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…

おすすめ記事

  1. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…
  2. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  3. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…