はじめに
ケモインフォマティクスで学ぶRのデータ構造に引き続き、リピドミクス(脂質の網羅解析)を題材として「条件分岐」について解説していきます。
ケモインフォマティクスの実践例を中心に説明していきますので、基本を確認したいという人は以下の記事を読んでからこの記事を読んでみてください。
if文
if (条件式){処理}として、条件式が成り立つときの処理を記述します。
elseを使うことで、ifに続く条件式が成り立たなかった場合の処理を記述することができます。
さらに細かく条件を分けたい場合は、else if (条件式){処理}とすることで、別の条件が成り立つ場合の処理を記述することができます。
Un <- 0
if (Un == 0){
print("saturated fatty acid")
} else {
print("unsaturated fatty acid")
}
上のプログラムでは、不飽和度(脂肪酸の二重結合の数)を示す変数Unが0だった場合は、saturated fatty acid(飽和脂肪酸)と出力し、Unが0以外の数値だった場合は、unsaturated fatty acid(不飽和脂肪酸)と出力するようにしています。
Cn <- 18
Un <- 0
if (Cn == 16 && Un == 0){
print("palmitic acid")
} else if (Cn == 18 && Un == 0){
print("stearic acid")
} else {
print("other fatty acid")
}
ifの後の条件式において、&&は「かつ」というような意味になります。
「または」にしたい場合は||を用います。
switch文
指定した変数の値によって処理を分けたいときに使います。
switch (変数, 値=処理, 値=処理, ・・・)という風に書きます。
Cn <- "16"
switch (Cn,
"16" = print("palmitic acid"),
"18" = print("stearic acid"),
"20" = print("arachidic acid"),
print("other fatty acid")
)
上の例では変数Cnに鎖長(炭素原子数)を格納し、その値によって出力する脂肪酸名を変えています。
まとめ
ここでは、Rの条件分岐について、ケモインフォマティクスで使える実践的な知識を中心に解説しました。
もう一度要点をおさらいしておきましょう。
- 条件分岐は基本的に
ifを使って記述します。場合分けが必要な場合は、elseやelse ifを使います。 -
switchを使うと、ifよりも短いコードで書ける場合があります。