[R]{base}seq() : 数列を作る関数

説明

通常の数列(regular sequences)を作る。
seq()はデフォルトメソッドを持つ標準ジェネリック関数である。
seq.int()はプリミティブ関数である(非常に高速だが制約がある)。
seq_along()とseq_len()は2つの共通するケースに対する非常に高速なプリミティブ関数である。

使用法

seq(…)

Default S3 method:

seq(from = 1, to = 1, by = ((to – from)/(length.out – 1)), length.out = NULL, along.with = NULL, …)

seq.int(from, to, by, length.out, along.with, …)

seq_along(along.with)
seq_len(length.out)

引数

… : メソッドから/メソッドへ渡される引数
from, to : 数列の開始値および終了値(最大値) 無名引数から値を渡されない限り、長さ1である。
by : 数列の階差(increment)を示す数
length.out : 生成する数列に望む要素数。非負の数。小数点以下はseq()及びseq.init()では四捨五入される。
along.with : この引数の長さ、即ちlength(along.with)を生成する数列の長さとしたい場合に指定する。

詳細

数値の引数は全て有限でなければならない(無限、NaN、NAはダメ)

無名引数に対するseq()およびseq.init()の解釈は標準的ではない。従ってプログラミングの際には常に引数には名前をつけることが推奨される。

seq()はジェネリック関数であり、デフォルトメソッドのみがここで説明されている。引数の名前とは無関係に、seq()は第1引数のクラスに基づきディスパッチすることに注意せよ。もしseq()が1つの引数だけを持ち、これをalong.withとして解釈させることを意図してseq()を呼び出す場合、これは意図しない結果の原因となりうる。このような場合にはseq_along()を使用するのがよい方法である。

seq.int()は(引数マッチング以前に)第1引数のクラスに基づいてseq()に対するメソッドをディスパッチする内部ジェネリック関数である。

典型的な使用法

seq(from, to)
seq(from, to, by= )
seq(from, to, length.out= )
seq(along.with= )
seq(from)
seq(length.out= )
それぞれの解説は省略。

返り値

seq.int()及び数値型の引数に対するseq()のデフォルトメソッドは、整数型あるいはdouble型のベクトルを返す。(どちらかに依存したコーディングは避けるべき)

seq_along()およびseq_len()は整数型のベクトルを返す。但し長いベクトルの場合はdouble型ベクトルを返す事がある。

コメント