簡単な数値ベクトルを生成します。
以下のような、10から1の数値ベクトルを生成してください。
## [1] 10 9 8 7 6 5 4 3
x <- 10:3
x
## [1] 10 9 8 7 6 5 4 3
数字の連番を生成するには、1:10
のように:
で数値をつなげるとできます。またこの連番は、左の数値から右の数値へと1ずつ変化させていきます。この挙動については、?":"
を実行してヘルプを参照してみてください。
以下のような、5から30までの、5ずつの数値ベクトルを生成してください。
## [1] 5 10 15 20 25 30
seq(5, 30, by = 5)
## [1] 5 10 15 20 25 30
seq
関数は、一定の間隔を持つ数値ベクトルを返します。第一引数(from=
)で開始値を、第二引数(to=
)で終了値(最大値)を返します。また、by=
引数で間隔を指定します。
一番優先されるのは第一引数のfrom=
で、この値から必ずスタートします。そしてby=
で指定した間隔にしたがって値を出力し、その値がto=
の値を超えたら出力しなくなります:
seq(5, 32, by = 5)
## [1] 5 10 15 20 25 30
もしby=
を指定しなかった場合、1ずつ増加した値が返ってきますので、from:to
と同じとなります。
以下のような、5から始まって3ずつ増加する、長さ10の数値ベクトルを生成してください。
## [1] 5 8 11 14 17 20 23 26 29 32
seq(5, by = 3, length.out = 10)
## [1] 5 8 11 14 17 20 23 26 29 32
問題2同様、seq
関数を使用します。ただ今回は、初期値と間隔値とベクトル長が指定してあります。この場合、length.out=
引数でベクトル長を指定します。
なお、このseq
関数で、from=``to=``by=``length.out=
の4つの引数を同時に指定するとエラーが出ます。理由はぜひ考えてみてください。それ以外の3つ以下の組み合わせを使えば、色々なパターンが作れます。ぜひ色々試してみてください。
以下のような、1から5までの整数からランダムに20個取得した数値ベクトルを生成してください。
sample(1:5, 20, replace = TRUE)
## [1] 5 3 5 4 3 5 5 2 4 5 4 1 4 4 3 2 1 4 1 1