データ構造

データ構造について

データ構造の種類

大きく分けて下記の5種類のデータ構造がある。同一のデータ型しか保持できないタイプと、異種のデータ型を保持できるタイプがある。

ベクトル

同一のデータ型(数値や文字列)を一次元で格納する。

ベクトルの作り方

c()を使用する

num <- c(1, 5, 10)
num
[1] 1 5 10
fruits <- c("apple", "mango", "banana")
fruits
[1] "apple" "mango" "banana"

データフレームの操作については下記を参照。 ベクトル

行列

ベクトルを二次元に拡大したもの。ベクトルと同様に同一の型である必要がある。

行列の作り方

matrix()を使用する。行数、列数はnrow, ncolで指定する

bingo <- matrix(c(1,3,9,2,5,7,4,8,6), nrow=3, ncol=3)
bingo
     [,1] [,2] [,3]
[1,]    1    2    4
[2,]    3    5    8
[3,]    9    7    6

配列

ベクトルをn次元に拡大したもの。

配列の作り方

array()を使用する。引数dimで次元を設定する。

cube <- array(1:60, dim=c(3,4,5))
cube
, , 1

     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12

, , 2

     [,1] [,2] [,3] [,4]
[1,]   13   16   19   22
[2,]   14   17   20   23
[3,]   15   18   21   24

, , 3

     [,1] [,2] [,3] [,4]
[1,]   25   28   31   34
[2,]   26   29   32   35
[3,]   27   30   33   36

, , 4

     [,1] [,2] [,3] [,4]
[1,]   37   40   43   46
[2,]   38   41   44   47
[3,]   39   42   45   48

, , 5

     [,1] [,2] [,3] [,4]
[1,]   49   52   55   58
[2,]   50   53   56   59
[3,]   51   54   57   60

リスト

異種のデータを一次元で保持できる。

リストの作り方

list()を使用する

person <- list(30, "man", c("Tokyo", "Yokohama", "Sendai"))
[[1]]
[1] 30

[[2]]
[1] "man"

[[3]]
[1] "Tokyo" "Yokohama" "Sendai"

データフレーム

Rで様々なデータを格納するのに使用されるデータ構造。異種のデータ型を二次元で保持できる。それぞれの列は長さが一緒である必要がある。

データフレームの作り方

data.frame()を使用する

name <- c("Taro", "Jiro", "Hanako")
age <- c(26, 18, 20)
brother <- data.frame(name, age)
brother
    name age
1   Taro  26
2   Jiro  18
3 Hanako  20

データフレームの操作については下記を参照。 データフレーム

See Also

purrr

関数型プログラミングを行うためのパッケージ

リスト

異種データの集まり

データフレームの結合

データフレームにデータを追加する

データフレーム

Rで最もよく使われるデータの格納の仕方

ベクトル

順序付きの同一データ型の集まり

ベクトルの集合演算

ベクトルの和集合・積集合・差集合・相当な集合

集合

重複しない要素の集まり

tidyr

データをtidyに整形する