[R]ベクトルの特殊な値(NULL, NA, NaN, Inf)
NULL
ヌル。要素が空であること。この「空」とは、0や""が入っているわけではなく、それすら格納されていない、まっさらな状態ということ。NULLか否かの判定には、is.null関数を使う。
> n <- c(NULL)
> print(n)
NULL
> length(n)
[1] 0
> n <- c(1:2, NULL, 3:5)
> print(n)
[1] 1 2 3 4 5
> length(n)
[1] 5
> print(is.null(NULL))
[1] TRUE
> print(is.null(NA))
[1] FALSE
> print(is.null(NaN))
[1] FALSE
よくある使い方として、for文などで繰り返し値を追加するベクトルの初期化に使われる。
> n <- as.integer(NULL)
> print(n)
integer(0)
> for (i in 1:4) n <- append(n, 2 ^ i)
> print(n)
[1] 2 4 8 16
NA
Not Available。欠損値のこと。ベクトルの特殊な値の一つ。NAはどのような演算をしても、演算結果はNAになる。NAか否かの判定にはis.na関数を使う。
> n <- c(1, 2, NA, 4)
> print(n)
[1] 1 2 NA 4
> print(n + 10)
[1] 11 12 NA 14
> print(n / 2)
[1] 0.5 1.0 NA 2.0
> print(n == 1)
[1] TRUE FALSE NA FALSE
> print(is.na(n))
[1] FALSE FALSE TRUE FALSE
NaN
ナン。Not A Number。非数のこと。ベクトルの特殊な値の一つ。ゼロ除算などで正常な演算結果が得られなかった場合にNaNになる。NaNか否かの判定にはis.nan関数を使う。
> print(0 / 0)
[1] NaN
> print(Inf / Inf)
[1] NaN
> is.nan(NA)
[1] FALSE
> is.nan(Inf / Inf)
[1] TRUE
Inf
数値計算における無限大(∞)のこと。ベクトルの特殊な値の一つ。演算結果が無限大になる演算結果がInfになる。数学同様、負数の無限大もある。Infか否かの判定には、is.infinite関数を使う。
> print(1 / 0)
[1] Inf
> print(-1 / 0)
[1] -Inf
> 1 / 1.e-308
[1] 1e+308
> 1 / 1.e-309
[1] Inf
> n <- c(1, 2, Inf, 4)
> print(n)
[1] 1 2 Inf 4
> print(is.infinite(n))
[1] FALSE FALSE TRUE FALSE