かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

R言語のベクトル

同じ型をまとめて管理するものでc()関数で作るらしい。

x <- c(1,2,3,4,5)
print(x)

出力結果

[1] 1 2 3 4 5

1~5みたいに規則性のあるものは、開始:終了といった感じでかけるみたい。

x <- 1:5
print(x)

出力結果は同じ。

Rはベクトルに対する演算が便利になってる。具体的にいうと単純に掛け算をするだけで、全要素に掛け算をしてくれる。ループいらない!

x <- 1:5
x <- x * 10
print(x)

出力結果

[1] 10 20 30 40 50

ベクトル同士の掛け算もOK。同じ長さなら単純に掛け合わせて、違う長さなら短い方を再利用しながら掛け算してくれる。

x <- c(1,2,3)
y <- c(10,20,30)
z <- x * y
print(z)

出力結果

[1] 10 40 90

長さの違うもの同士の掛け算のケース

x <- c(1,2,3)
y <- c(10,20,30, 100, 200, 300)
z <- x * y
print(z)

出力結果

[1]  10  40  90 100 400 900

要素へアクセスするには[]演算子を使います。1オリジンなのでC系言語の人は要注意。ベクトルを渡すことで、複数の値をベクトル形式で抜いてくることも可能です。

x <- c(1,2,3)
print(x[2])

print(x[1:2])

print(x[c(1,3)])

実行結果

[1] 2
[1] 1 2
[1] 1 3