Rのデータ構造
Rのデータ構造が紛らわしいのでまとめておく。
データ構造 | 次元 | 制約 |
---|---|---|
ベクトル | 1次元 | 全要素は型が統一されている必要がある。 |
リスト | 1次元 | 異なる型を保持できる。 |
順序なし因子 | 1次元 | 順序のないカテゴリを要素とする。 |
順序つき因子 | 1次元 | 順序のあるカテゴリを要素とする。 |
行列 | 2次元 | 全要素は型が統一されている必要がある。 |
データフレーム | 2次元 | 各列の要素は型が統一されている必要がある。 |
配列 | 任意 | 全要素は型が統一されている必要がある。 |
自由度が高くなる(制約が少なくなる)につれて処理が遅くなるので注意。
リスト(list)
- 異なる型を保持できる1次元データ型。
> lst <- list(1,c(1,2,3)) > lst [[1]] [1] 1 [[2]] [1] 1 2 3
順序なし因子(factor)
- 順序のないカテゴリを要素とした1次元データ型。
> fac <- factor(c("S","M","L","M")) > fac [1] S M L M Levels: L M S
順序つき因子(ordered)
- 順序のあるカテゴリを要素とした1次元データ型。
> ord <- ordered(c("S","M","L","M"),levels=c("S","M","L")) > ord [1] S M L M Levels: S < M < L
行列(matrix)
- 2次元データ型。全要素は型が統一されている必要がある。
> mat <- matrix(1:4,nrow=2,ncol=2) > mat [,1] [,2] [1,] 1 3 [2,] 2 4
データフレーム(data frame)
- 2次元データ型。各行の要素は型を統一しなくてよいが、各列の要素は型が統一されている必要がある。ファイル読み込み時にデフォルトで使用される。
> df <- data.frame(col1=c(1,2),col2=c("a","b")) > df col1 col2 1 1 a 2 2 b
配列(array)
- 次元数が任意のデータ型。全要素は型が統一されている必要がある。
> arr <- array(1:8,dim=c(2,2,2)) > arr , , 1 [,1] [,2] [1,] 1 3 [2,] 2 4 , , 2 [,1] [,2] [1,] 5 7 [2,] 6 8