1

seq()R のコマンドを使用して、ゼロから始まるシーケンスを作成するのが好きです。しかし、例えば入力すると

seq(0:14)

次の出力が得られます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

私は何を間違っていますか?

4

4 に答える 4

36

他の人があなたが望むと言ったように0:14、またはseq(from=0,to=14)望ましくない結果が得られる理由も注目に値します。

この場合、( で説明されているように?':') コロン演算子自体が目的の整数の規則的なシーケンスを生成し、それを に提供しseq()ます。

seq()seq(along.with = 0:14)これは、指定したものと同じ長さのシーケンスを返すことを意味していると推測しています。もちろん、デフォルトを使用していますfrom = 1。したがって、1 から始まる 15 個の整数のシーケンスが得られます。これはおおよそ次のようになります。

(x <- 0:14)
# [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14

seq(along.with = x, from = 1)
# [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

あなたが得たエラーの原因にもかかわらず、このalong.with機能はベクトル/リスト/行列と同じ長さのシーケンスを作成するのに明らかに役立ちます:

seq(c(1,"w",5,6,NA))
# [1] 1 2 3 4 5

?seqそして、引数の命名について警告しなかったとは言えません。

seq および seq.int の名前のない引数の解釈は標準的ではないため、プログラミング時には常に引数に名前を付けることが推奨されます。

于 2012-12-29T15:33:39.687 に答える
13

あなたはするつもりです

0:14

また

seq(0, 14)
于 2012-12-29T13:33:23.727 に答える
3

seq(0, 14)私のために次の入力を得ました:

[1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14
于 2012-12-29T13:37:48.063 に答える
3

ここでの問題は構文にあります。i:j は、番号 i から j までのシーケンスを作成します。たとえば、1:5 は 1 ~ 5 または 1,2,3,4,5 として読み取ることができます。

一方、関数 seq は「to」パラメータと「from」パラメータを取り、どちらも単一の数値でなければなりません。seq(0:14) を入力すると、単一の数値ではなくベクトルが seq のパラメータの 1 つに渡されます。

あなたが欲しいのは

seq(from=0, to=14) 

それが役立つことを願っています

于 2012-12-29T15:35:31.913 に答える