はじめに
一般的なプログラミング言語では、以下のように「複数行をコメントアウトする」を実現する方法(ブロックコメント)が標準機能として用意されています。
ところがR
にはそのような方法は用意されていないので、良い方法を探ってみました。
Javaの場合
/*
コメント行
コメント行
コメント行
*/
Rubyの場合
=begin
コメント行
コメント行
コメント行
=end
複数行をコメントアウトする
-
こちらのブログを見ると、if文を使って複数行をコメントアウトする方法が書かれていました。
- 見ての通り厳密にはコメントアウトではなく、「条件分岐で強制的に実行させない」ということになります。
- それなりにシンプルな方法ですが、コメントアウトが何ヶ所もある場合、コメントアウトを解除する時にif文を書き換える or 外さないといけないのが面倒に感じられます...
複数行をコメントアウト
message("この行は実行されます")
if (0) {
message("コメント行")
message("コメント行")
message("コメント行")
}
message("この行は実行されます")
実行結果
この行は実行されます
この行は実行されます
- コメントアウト箇所が複数ある場合は、
if (0) {...}
のように条件式としてリテラル値を指定するのではなく、以下のようにフラグで制御することでまとめて制御した方が便利かもしれません。- とはいえ、他の言語のようにまとめてブロックコメントを一気に付ける/外すという方法と比べると、かなり面倒な方法に思えます。
複数行をコメントアウト(改)
# コメントアウトの制御用フラグ
comment_out <- TRUE
message("この行は実行されます")
if (!comment_out) {
message("コメント行")
message("コメント行")
message("コメント行")
}
message("この行は実行されます")
if (!comment_out) {
message("コメント行")
message("コメント行")
message("コメント行")
}
message("この行は実行されます")
実行結果
この行は実行されます
この行は実行されます
この行は実行されます
まとめ
- if文を使えば「コメントアウトらしきもの」は出来ますが、他の言語からすると奇妙なコードになってしまうのが難点だと思います。
- 出来ればRの標準機能として、ブロックコメントを実装してほしいものです...