Rで扱うデータ構造は、大きく分けてベクトル、行列、配列、リスト、データフレームの5種類がある。配列については利用場面がほとんどないため説明を省略する。
class(iris)
## [1] "data.frame"
同じデータ型の1次元の連なり。
x <- c(1, 2, 3, 5, 7)
x
## [1] 1 2 3 5 7
x <- c(1, 2, 3, 5, 7)
length(x)
## [1] 5
同じデータ型の2次元の連なり。
x <- matrix(1:9, nrow = 3, ncol = 3)
x
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
nrow で行数、ncol で列数を指定する。 デフォルトでは列を優先してベクトルを折りたたむが、引数にbyrow = TRUEを指定すると行を優先する。
x <- matrix(1:9, nrow = 3, ncol = 3, byrow = TRUE)
x
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
x <- matrix(1:9, nrow = 3, ncol = 3)
nrow(x)
## [1] 3
x <- matrix(1:9, nrow = 3, ncol = 3)
ncol(x)
## [1] 3
表形式の構造。行列では同じデータ型しか扱えないのに対して、データフレームでは列ごとのデータ型が同じであれば良い。1行が1サンプルで列に属性を表現する。
x <- data.frame(
label = c("A", "B", "C"),
weight = c(10, 12, 14)
)
class(x)
## [1] "data.frame"
x
## label weight
## 1 A 10
## 2 B 12
## 3 C 14
異なる型のデータの1次元の連なり。複雑なデータ(要素数が異なるなど)構造を扱う際に利用される。例えば、分析結果など。
x <- list("A", 12, 0.2)
class(x)
## [1] "list"
x
## [[1]]
## [1] "A"
##
## [[2]]
## [1] 12
##
## [[3]]
## [1] 0.2
x <- lm(dist ~., data = cars) # 回帰分析
mode(x) # 分析結果など複雑なデータ構造はリスト型で返される
## [1] "list"
x
##
## Call:
## lm(formula = dist ~ ., data = cars)
##
## Coefficients:
## (Intercept) speed
## -17.579 3.932
as.vector(x) # xをベクトルに変換する
as.matrix(x) # xを行列に変換する
as.data.frame(x) # xをデータフレームに変換する
as.list(x) # xをリストに変換する
unlist(x) # リスト型のxをベクトル型に変換する
「データから価値を創造する」一般社団法人データマーケティングラボラトリー
Copyright© DML All Rights Reserved.