ベクトル

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

ベクトルを作る

c

引数を結合するc()関数を使用する。

作成例

> vec.num <- c(1, 4, 7, 0)
> is.vector(vec.num)
[1] TRUE

> vec.char <- c("Tokyo", "Osaka", "Fukuoka")
> is.vector(vec.char)
[1] TRUE

:演算子

連続した数列を作るには:演算子が使用できる。

> x <- 1:5; x
[1] 1 2 3 4 5

> y <- -3:2; y
[1] -3 -2 -1  0  1  2

数列を作る

数列を作るにはseq()関数を用いることができます。

seq(from , to, by, length.out, along.with)
引数 説明
from 最初の数
to 最後の数
by 交差
length.out (length) 数列の長さ。
along.with (along) 指定したオブジェクトと同じ長さ数列を作る

fromtoに指定するだけで、簡単に等差数列のベクトルが作れます。

# 1から5まで増加する等差数列
> seq(1,5)
[1] 1 2 3 4 5

増加値・減少値はbyで指定し、デフォルトでは1となっています。2つずつ増加させたければ、

> seq(1,10, by = 2)
[1] 1 3 5 7 9

となります。 また、lengthを指定すると、その数分に分割したベクトルを生成します。

> seq(1, 20, length=7)
[1]  1.000000  4.166667  7.333333 10.500000 13.666667 16.833333 20.000000

alongは指定したベクトルと同じだけの要素数のベクトルを生成します。

> seq1 <- seq(1,10,by = 2)
> seq2 <- seq(10, by = 3, along=seq1)
> seq2
[1] 10 13 16 19 22

rep

要素を繰り返すベクトルを生成する

rep(x, times)
引数 説明   初期値
x 繰り返す要素
times 繰り返し回数 1
length.out 生成するベクトル数の上限 NA
> rep(1:5, 3)
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

> rep(1:5, 3, length.out=12)
 [1] 1 2 3 4 5 1 2 3 4 5 1 2

空ベクトルも作れる

> rep(NA, 10)
 [1] NA NA NA NA NA NA NA NA NA NA

ベクトルの要素へのアクセスする

n番目の要素

> vec
[1]  0  6 12 18 24 30 36

> vec[2]
[1] 6

> vec[c(2, 4)]
[1]  6 18

> vec[3:6]
[1] 12 18 24 30

n番目以外の要素

> vec
[1]  0  6 12 18 24 30 36

> vec[-3]
[1]  0  6 18 24 30 36

> vec[c(-3, -5)]
[1]  0  6 18 30 36

> vec[-5:-3]
[1]  0  6 30 36

論理ベクトルによるインデックス指定

> vec
[1]  0  6 12 18 24 30 36

> vec[c(TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE)]
[1]  0 18 36

> vec[c(TRUE, FALSE)]
[1]  0 12 24 36

> vec[vec > 20]
[1] 24 30 36

> vec[vec < 15]
[1]  0  6 12

奇数番目の要素

1, 3, 5 … となる数列をseq()関数で作りベクトルを指定する。

> vec <- 1:10
> vec[seq(1,length(vec),2)]
[1] 1 3 5 7 9

偶数番目の要素

2, 4, 6 … となる数列をseq()関数で作りベクトルを指定する。

> vec <- 1:10
> vec[seq(2,length(vec),2)]
[1] 2 4 6 8 10

抽出する

文字列に一致するものを抽出する

> x <- c("Aomori", "Akita", "Iwate", "Yamagata", "Miyagi", "Fukushima")
> x[x %in% c("Aomori", "Miyagi")]
[1] "Aomori" "Miyagi"

文字列に一致しないものを抽出する

> x <- c("Aomori", "Akita", "Iwate", "Yamagata", "Miyagi", "Fukushima")
> x[!(x %in% c("Aomori", "Miyagi"))]
[1] "Akita" "Iwate" "Yamagata" "Fukushima"

要素を連結する

ベクトルの要素を連結して取り出すにはpaste()関数で結合させる。

> a = c(1,2,3,4,5)
> paste(a, collapse=" ")
[1] "1 2 3 4 5"

ベクトルを並び替える

sort(x, decreasing, na.last)
引数 説明 初期値 
x 並び替えたいベクトル  
decreasing 降順にするか指定する論理値  FALSE
na.last NA値を最後に配置するか指定する論理値  NA
> c(3,4,2,1,5)
[1] 3 4 2 1 5
> sort(c(3,4,2,1,5))
[1] 1 2 3 4 5

因子型ベクトル

要素がfactorクラスのベクトル

数値ベクトルをカテゴリーごとに分類する

cut(x, breaks)
引数  説明 
x 元の数値ベクトル 
breaks 数値の場合は、分割する数。ベクトルの場合は、分割点。 

数値ベクトルを四分位数で分割する

> cut(x, breaks = quantile(x))

ベクトルを結合する

ベクトルどおしを結合する

ベクトルどおしを結合するのにも、c()が使えます。引数に結合したいベクトルを指定します。

> vector.a <- c(1, 2, 3, 4, 5)
> vector.b <- c("a", "b", "c", "d", "e")
> vector.new <- c(vector.a, vector.b)
> vector.new
 [1] "1" "2" "3" "4" "5" "a" "b" "c" "d" "e"

See Also

ベクトルの集合演算

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

文字列操作

文字列の操作方法

purrr

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

オブジェクトの比較

オブジェクトが同じかどうか調べる

リスト

異種データの集まり

データフレームの結合

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

データフレーム

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

データ構造

データ構造について