データ型

R は、データをベクトルとして取り扱う。ベクトルの要素として、実数や複素数の他に文字列なども代入できる。変数にベクトルを代入するとき、c 関数を利用する。

x <- c(2)            # 1つの要素を持つベクトルx
x <- 2               # 要素が1つだけのときcを省略できる。

y <- c(2, 3, 4)      # 3つの要素を持つベクトルy

z <- c(2 + 1i, 2i)   # 複素数を要素に持つベクトルz

w <- c("ABC", "XYZ") # 文字列を要素に持つベクトルw

ベクトルの要素が実数なのか、文字列なのかを調べるときに mode 関数を利用する。また、実数を整数に変更したり、数値を文字列に変更したりすることもできる。

データ型の確認

R の変数に保存されているデータの型を調べるとき mode 関数または is. 系の関数を利用する。mode 関数は「このデータ型は何か」の問い合わせに対して、データ型を調べ、その結果を文字列として返す。

x <- "Hello World"        # 文字列を代入
mode(x)
## [1] "character"


x <- c(1, 2, 3, 4)        # 実数ベクトルを代入
mode(x)
## [1] "numeric"


x <- function(t) { t }    # 関数を代入 
mode(x)
## [1] "function"

is. 系の関数は、is.numeric ならば「このデータ型は実数か」、is.character ならば「このデータ型は文字列か」などのような問い合わせに対して、TRUEFALSE で返す。

x <- "Hello World"     # 文字列を代入
is.character(x)
## [1] TRUE

is.numeric(x)
## [1] FALSE

is. 系の関数は以下のようなものがある。

関数意味
is.numeric実数であるかどうかを調べる
is.integer整数であるかどうかを調べる
is.complex複素数であるかどうかを調べる
is.character文字列であるかどうかを調べる
is.logical理論値であるかどうかを調べる
is.factor順序なし因子であるかどうかを調べる
is.ordered順序あり因子であるかどうかを調べる
is.function関数であるかどうかを調べる

データ型の変換

R では、文字列を数値に変換したり、実数を複素数に変換したりなどのデータ型の交互変換を行える。

次の例は、文字列からなるベクトルを x に代入し、次にこれを実数に変換した後に y に代入することを示している。

x <- c("3.14", "2.72", "0.082")
x
## [1] "3.14"  "2.72"  "0.082"
mode(x)
## [1] "character"

y <- as.numeric(x)
y
## [1] 3.140 2.720 0.082
mode(y)
## [1] "numeric"

実数を整数に変換する例。

x <- c(3.14, 2.72, 0.082)
y <- as.integer(x)
y
## [1] 3 2 0

TRUE / FALSE からなるベクトルを 1 / 0 に変換する例。

x <- c(TRUE, TRUE, FALSE, TRUE)
y <- as.numeric(x)
y
## [1] 1 1 0 1

データ型を変換する関数一覧。

関数意味
as.numeric実数に変換する
as.integer整数に変換する
as.complex複素数に変換する
as.character文字列に変換する
as.logical理論値に変換する
as.factor順序なし因子に変換する
as.ordered順序あり因子に変換する