Rで扱う代表的なデータ型には numeric, complex, character, logical などがある。データ型を調べるclassという関数があり、class(X)を実行するとXのデータ型が調べられる。この際、引数Xは複数要素を含むものも許されており、欠損値がある場合の出力結果が気になったので調査した。
データ型とデータ構造によると、__character > complex > numeric > logical > NULL__という大小関係があり、複数のデータ型を含むベクトルの場合はより大きい型のデータ型となる。以下でテストしてみる。
class.r
X1 <- c(NULL)
X2 <- c(NULL, TRUE)
X3 <- c(NULL, TRUE, 2.8)
X4 <- c(NULL, TRUE, 2.8, 1+2i)
X5 <- c(NULL, TRUE, 2.8, 1+2i, "TEST")
class(X1)
[1] "NULL"
class(X2)
[1] "logical"
class(X3)
[1] "numeric"
class(X4)
[1] "complex"
class(X5)
[1] "character"
たしかにデータ型の大きなものになっていることが確認ができた。あるデータの列全体に関してデータ型を調べるときには、列全体をclass()の引数に入れれば、欠損値があってもデータ型が判定できる。