Menu
Coddy logo textTech

数列の生成 (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 10

R は間隔を自動的に計算し、等間隔の数値をちょうど 4 個与えます。どちらのアプローチもループでシームレスに機能するため、カスタムシーケンスを簡単に反復処理できます。

challenge icon

チャレンジ

簡単

入力から3つの数値、startendstepを読み取ります。

seq()関数を使用して、指定されたstepのサイズでstartからendまでのシーケンスを生成します。次に、forループを使用してこのシーケンスを反復処理し、各数値の二乗を出力します。

各二乗値は、print()を使用してそれぞれ別の行に出力します。

たとえば、入力が2102の場合、出力は次のようになります。

[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() を使用して各数値の平方を出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Rオンラインコンパイラ