[R]コードのエラーを抑制もしくは判定する
Rのスクリプトは、コードの実行時にエラーが発生するとスクリプトが中断する(例えばread.table関数で中身が空のファイルを読み込んだ時など)。
try関数を使うとこのエラーの発生有無の判定とスクリプトの中断を抑制することができる。
エラーが発生する可能性があるコードをtry関数内に書き、そのtry関数の戻り値を得られるようにしておく。エラーが発生したときにはスクリプトは中断しない。try関数に含めたコードがエラーを発生したか否かの判定は、try関数の戻り値を見ればよい。エラー発生時は「try-error」という文字列になるので、それで判定するようにしておけばよい。
> a # aというベクトルがない場合
エラー: オブジェクト 'a' がありません
> 1:3
[1] 1 2 3
> 1:a # aというベクトルがないのでエラーが発生する
エラー: オブジェクト 'a' がありません
> r <- try(1:3, silent = T)
> class(r) # エラーが発生せずに数値ベクトルが作成されている
[1] "integer"
> r
[1] 1 2 3
> r <- try(1:a, silent = T) # 上ではエラーが発生してシステムが中断したが、ここでは中断しない
> class(r)
[1] "try-error"
> mode(r)
[1] "character"
> is.character(class(r))
[1] TRUE
> class(r) == "try-error"
[1] TRUE
« [R]コードを文字列で与えて実行させる | トップページ | [R]空の日付ベクトルを作成する »
「R(数値計算)」カテゴリの記事
- [R]複数のパラメーターと定数を持つ関数の値が最大・最小となるパラメーターを求める(2026.03.30)
- [R]重み付き線形最小二乗法を行う(2026.03.20)
- [R]重み付き非線形最小二乗法を行う(2026.03.06)
- [R]計算機イプシロンを求める(2025.10.29)
- [R]複数の引数を持つ関数の値の最小値(最大値)を求める(2024.12.07)

コメント