数列の生成 (seq, :)
CoddyのRジャーニー「基礎」セクションの一部。レッスン 43/78。
ループでシーケンスを作成するために、1:5を使ってきました。このコロン演算子は簡単で手早く使えますが、Rにはシーケンスをより細かく制御するためのseq()関数も用意されています。
コロン演算子は、連続する整数のシーケンスを作成します:
print(1:5)
print(10:6)出力:
[1] 1 2 3 4 5
[1] 10 9 8 7 6数列はどちらの方向にも進めることに注目してください。最初の数が大きい場合は、下向きに数えます。
seq()関数を使うと、より柔軟に指定できます。by引数を使ってステップサイズを指定できます。
print(seq(2, 10, by = 2))出力:
[1] 2 4 6 8 10これは2から10までの偶数を作成します。
length.outを使って、必要な数値の個数を指定することもできます。
print(seq(1, 10, length.out = 4))出力:
[1] 1 4 7 10R は間隔を自動的に計算し、等間隔の数値をちょうど 4 個与えます。どちらのアプローチもループでシームレスに機能するため、カスタムシーケンスを簡単に反復処理できます。
チャレンジ
簡単入力から3つの数値、start、end、stepを読み取ります。
seq()関数を使用して、指定されたstepのサイズでstartからendまでのシーケンスを生成します。次に、forループを使用してこのシーケンスを反復処理し、各数値の二乗を出力します。
各二乗値は、print()を使用してそれぞれ別の行に出力します。
たとえば、入力が2、10、2の場合、出力は次のようになります。
[1] 4
[1] 16
[1] 36
[1] 64
[1] 100これは、2、4、6、8、10というシーケンスが生成され、それぞれの数値が二乗されるためです。
自分で試してみよう
# 入力を読み込む
con <- file("stdin", "r")
start <- as.numeric(suppressWarnings(readLines(con, n = 1)))
end <- as.numeric(suppressWarnings(readLines(con, n = 1)))
step <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: 以下にコードを書いてください
# 1. seq() を使用して start から end まで指定された step でシーケンスを生成する
# 2. for ループを使用してシーケンスを反復処理する
# 3. print() を使用して各数値の平方を出力するこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rオンラインコンパイラ