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」と表示するようにしました。ラベルだけの切り替えを行いましたが、他にも色々と応用できる処理です。

論文・データ解析の支援

個別に直接相談できるのが良いと、たくさんの方にご利用頂いています。

とにかく早く問題解決したい人はこちら>>直接、データ解析相談
とにかく早く問題解決したい人はこちら>>直接、論文相談

関連記事1

R 4.0 インストール ubuntu
Rのインストール手順について。 最近よくつかう「tidyverse」も一緒にインストールします。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 R 4.0 インストール手順 事前設定 $ sudo apt update -q...
R 使い方 debug(デバッグ)方法 スクリプトの書き方
スクリプトが思ったように動かない、そんなときはバグ(プログラムの間違い)があると言われます。スクリプトを書く場合、そのような間違いを書かないように注意することは当然ですが、完全に防ぐのは難しいことです。 スクリプトが思うように動かない場合は...
R 使い方 文字列処理(文字列検索・文字列置換)
統計ソフトRは、統計処理やグラフの描画でよく用いられます。しかし、色々なことに活用していると、「文字列処理ができると便利だな」と思うことがあります。統計ソフトRには、文字列処理のための便利な関数が準備されているので、代表的な関数についてまと...
R 使い方 while 繰り返し スクリプトの書き方
Rで「条件を満たす間ずっと繰り返し」を行う場合は、whileを使います。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 while スクリプトの書き方 while文は、条件式と一緒に書きます。条件を満たす間、一連の文やブロッ...
R 使い方 for 繰り返し スクリプトの書き方
Rで単純な繰り返し制御を行う場合は、forを使います。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 for スクリプトの書き方 forは繰り返し制御の基本的な構造です。集合には、ベクターやデータフレームなどを使うことができ...
R 使い方 if 条件分岐 スクリプトの書き方
R の if文は、フロー制御で最も単純な条件分岐です。条件に「一致したかどうか」という判断で、次に実行するコマンドを変更したりするときに使います。 Rのif文の「書き方」、ANDやORを使った複数条件の指定の仕方などを、サンプルを交えてまと...
R 使い方 if 条件分岐 スクリプトの書き方
R の if文は、フロー制御で最も単純な条件分岐です。条件に「一致したかどうか」という判断で、次に実行するコマンドを変更したりするときに使います。 Rのif文の「書き方」、ANDやORを使った複数条件の指定の仕方などを、サンプルを交えてまと...
R 使い方 Hello World スクリプトの書き方
Rでプログラムを書きます。今回は、プログラムの基本「Hello World!」です。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 Hello World プログラム Hello Worldプログラムは、プログラムの勉強を開...
R 使い方 行列(マトリックス) スクリプトの書き方
Rのマトリックスは、他のプログラミング言語と同様、数値や文字などの1種類のデータを2次元配列として保持するデータ構造です。基本的な構造を理解すれば、Rはもっと使いやすいツールになります。 マトリックスの使い方について。 とにかく早く問題解決...
R 使い方 リスト スクリプトの書き方
Rのリストは、他のプログラミング言語と同様、各項目にたいして名前をつけたベクトルです。基本的な構造を理解すれば、Rはもっと使いやすいツールになります。 リストの使い方について。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 ...
R 使い方 ベクトル スクリプトの書き方
Rのベクトルは、他のプログラミング言語と同様、数値や文字などの1種類のデータを順番に保持するデータ構造です。基本的な構造を理解すれば、Rはもっと使いやすいツールになります。 Rのベクトルの使い方について。 とにかく早く問題解決したい人はこち...
R 使い方 データフレーム・ファクター スクリプトの書き方
Rのデータフレーム・ファクターは、他のプログラミング言語のデータ構造とは異なる独特な構造。でも、とてもよく使う構造で、必ず使いこなせるようになりましょう。基本的な構造を理解すれば、Rはもっと使いやすいツールになります。 Rのデータフレームと...
R 使い方 データ構造まとめ スクリプトの書き方
Rで使うデータ構造をまとめてみます。一気に眺めることで、それぞれの特徴を理解できるかもしれません。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 Rのデータ構造 ベクトル ベクトルは、最も基本的な構造をしています。数値や文字...
R 使い方 データ 読込み テキスト,csv,エクセル,データベース スクリプトの書き方
「統計ソフト R」にデータを読み込むのは簡単です。タブ区切りのデータやエクセル・DBなどからデータを取り込むことができます。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 Rにデータを読み込む 「統計ソフト R」にデータを読...

関連記事2

R plotのPDFやPNGへの保存 - PDFなら複数の画像保存も可能
Rのplot (グラフ) は、PDFやPNGファイルとして保存することができます。 操作は、通常のグラフの描画と同じです。違うところは、前もって保存先のデバイスをオープンし、描画終了後に明示的にクローズするだけです。PDFなら1つのファイル...
R 使い方 組込みデータセット iris データフレーム・ベクトル・リスト
Rのデータ型について学びます。使うデータは、組込みデータセットの「iris」です。irisの構造を眺めたり要約統計量を求めることで、データフレーム・ベクトル型・リスト型について簡単に学びます。 とにかく早く問題解決したい人はこちら>>直接、...
ratio 1.5倍は、logFCで何?
bioinfomatics では、ratio や logFC を変動の閾値としてよく使います。 ratio 2倍・4倍なら、対数表現も1・2と簡単にわかりますが、1.5倍などを閾値とした場合は、対数で何になるか覚えておくのは大変です。これら...
R 知っていると便利!パッケージ読込みとヘルプ
Rのインストール済みのパッケージについて調べます。スクリプトがちゃんと動かないとき、「何がインストールされているか?」また、「何がインストールされていないか?」がヒントになるときがあります。 とにかく早く問題解決したい人はこちら>>直接、デ...
R 関数 maxの位置・minの位置を求める
Rで、最大値や最小値を求めるのは簡単ですが、「最大値・最小値の位置は?」という問題を考えてみたいと思います。 とにかく早く問題解決したい人はこちら>>直接、データ解析相談 最大値・最小値を求める 最大値・最小値を求めるのは簡単です。最大値を...
R 使い方 集計に便利な関数 aggregate
データフレームを使って集計を行う場合に、使いやすい関数があります。aggregate関数です。データフレームの計算にはapply系の関数がよく使われますが、わかりづらいという方にはオススメの方法です。 とにかく早く問題解決したい人はこちら>...
R 使い方 データフレーム 累積和を求める
データフレームやmatrixで累積和を求める機会ありませんか?「前の行の値」に「現在の行の値」を繰り返し足していくことで求められますが、せっかく「R」を使っているのに、for文やインデックスを使って求めるのも残念な感じがします。そんなときは...
R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
R の subset関数は、データフレームやマトリックスから条件にマッチした部分集合を取り出します。条件指定の主なパラメータは、「subset」と「select」です。「subset」では行を抽出するための条件式、「select」では列を抽...
タイトルとURLをコピーしました