Rで用いる基本的なデータ型は、数値型、整数型、論理型、文字列型、因子型がある。

データ型を確認する

class(iris$Sepal.Length)
## [1] "numeric"

数値型(numeric)

他言語のようにint, long, float, doubleは区別しない。

x <- 1.2
class(x)
## [1] "numeric"

指定した長さの数値ベクトルを作る

forループを使用する際は、あらかじめ出力結果を入力する変数を作成しておき、そこへ代入する方が処理が高速になる。

x <- numeric(3)
x
## [1] 0 0 0
x <- numeric(3)
for(i in 1:3) x[i] <- i
x
## [1] 1 2 3

整数型(integer)

x <- 1.2
int <- as.integer(x)
class(int)
## [1] "integer"
int
## [1] 1

指定した長さの数値ベクトルを作る

x <- integer(3)
x
## [1] 0 0 0

論理型(logic)

真(TRUE)か偽(FALSE)かを表す型

x <- TRUE
class(x)
## [1] "logical"
x <- 10
x > 10
## [1] FALSE

整数型との相互変換

TRUEは1、FALSEは0として変換可能。TRUEの数を調べたい時に、sum()関数などが利用できる。

x <- 1:5
sum(x < 3)
## [1] 2
x <- c(1, 0, 0, 1, 0)
as.logical(x)
## [1]  TRUE FALSE FALSE  TRUE FALSE

文字型(character)

文字列を扱う型。

x <- "apple"
class(x)
## [1] "character"

指定した長さのベクトルを作る

character(10)
##  [1] "" "" "" "" "" "" "" "" "" ""

因子型(factor)

カテゴリーを扱う型。内部的には数値をあてはめて処理している。カテゴリーの順序付けも行える(大中小など)

x <- factor(c("S", "M", "L"))
class(x)
## [1] "factor"
x
## [1] S M L
## Levels: L M S

カテゴリー(Level)の順序付け

指定しない場合は、辞書順に順位付けされる。

x <- factor(c("S", "M", "L"), levels = c("S", "M", "L"))
x
## [1] S M L
## Levels: S M L

型変換

as.numeric(x)   # xを数値型に変換する
as.integer(x)   # xを整数型に変換する
as.character(x) # xを文字型に変換する
as.factor(x)    # xを因子型に変換する

型テスト

is.numeric(x)   # xが数値型か検証する
is.integer(x)   # xが整数型か検証する
is.character(x) # xが文字型か検証する
is.factor(x)    # xが因子型か検証する

「データから価値を創造する」一般社団法人データマーケティングラボラトリー

Copyright© DML All Rights Reserved.