ベクトル (vector) の作り方。
ベクトル (Vector) とは
vector は1次元ベクトルとして値を格納する。
イメージは、「1列のデータセット」。
例えば、下記の場合、Boxの中にそれぞれ数値が入っている。
これは、左から1,3,7,11,14という数字が格納された vector。
vector の中身は、数値でもいいし、文字列でも良い。
だたし、数値と文字列の混在のように異なる型のデータは格納できない。
1つの vector には同じ型のデータだけ。
もし、文字列と数値を混在させたら、数値は "文字列" として認識される。
- double : 倍精度浮動小数点数
- integer : 整数
- character : 文字
- logical : 理論値
- complex : 複素数
- raw : バイナリ
データ型の大小関係は、
character (文字列) > complex (複素数) > numeric (数値) > logical (理論値) > NULL (何もなし)
の順。
つまり、一つでも文字列が入っていたらその vector は文字列の vector になるし、文字列がなくて一つでも複素数が入っていたら、その vector は複素数の vector になる。
vector のデータ型については "データ構造とデータ型:「データ型」の項を参照。
データ型とデータ構造の覚え書き。 データ型 データ構造を調べたり変換したりする場合は、下記関数が用意されている。 データ型には以下の関数が用意されている。 データ型 データ型を調べる データ型を変換する モード mode …
Vector の作り方3種類
Combine:c()
普通に数値をくっつけて並べる方法。
"combine" の "c" を使う。
V1 <- c(3, 24, 35, 543)
V1
文字列でもOK。
V2 <- c("a", "b" , "c" , "d" , "e" )
V2
でも、数値と文字列を混在させると、全て "文字列" として認識される。
V0 <- c("a", "b" , 7 , 8 )
V0
Sequence:seq()
数値が続きものの場合は、"sequence" を使うと便利。
sequenceは
seq()
の形で使う。
":" とほぼ同じ機能。
例えば数値 1-15 の vector を作る場合。
V3 <- seq(1,15)
V3
こんな感じで、1,2,3,4,5...15という数値の入った vector が作られる。
例えば2個飛ばしの sequence を作りたい場合は、
V4 <- seq(1,15,2)
V4
とすればOK。
4個飛ばしなら、
V5 <- seq(1,15,4)
V5
Replicate:rep()
同じものを繰り返したい場合は、replicate を使う。
使い方は、
rep()
例えば、3を50回繰り返す場合は、
V6 <- rep(3, 50)
V6
1から3を2回繰り返す場合は、
V6 <- rep(1:3, 2)
V6
output
[1] 1 2 3 1 2 3
文字列もOK。
V7 <- rep("a", 20)
V7
別の vector を繰り返す事もできる。
V8 <- c("a", "b")
V9 <- rep(V8, 10)
V9
Vectorの要素へのアプローチ
vectorは、左から順に1,2,3で呼び出せる。
他の言語は0からスタートだけど、Rだと1からスタートなところが違う。
例えば、下記のように打ち込む
x = c("a","b","c")
x
で、この vector の左から1番目を呼び出したい場合は、
x[1]
とすればOK。
左から1番目の "a" が呼び出された。
…… [ ] の色々な使い方は下記参照。
Vector、Matrix、DataFrame、List etc. から [] (square brackets) を使って特定の要素へアクセスする方法。 ベクトル (Vector) の場合 Vectorを作る。 v & …