1. ホーム
  2. r

[解決済み】seq_alongはうまくいくが、seqが意図しない結果を生む例とは?

2022-02-21 15:06:11

質問内容

の良い例を教えてください。 seq_along は動作しますが seq は意図しない結果をもたらすのでしょうか?

のドキュメントより ?seq があります。

最初の引数のクラスでディスパッチすることに注意してください。 引数名とは無関係に これは意図しない結果をもたらす可能性があります と解釈されることを意図して1つの引数で呼び出された場合、この引数は along.with を使用する方がはるかに良い。 seq_along ということです。

どのように解決するのですか?

これで違いが明確になったはずです。基本的には seq() と同じように動作します。 seq_along() ただし 長さ1のベクトルが渡された場合、次のように動作します。 seq_len() . もし一度でもこのようなことがあれば、もう二度と seq() もう二度と

a <- c(8, 9, 10)
b <- c(9, 10)
c <- 10

seq_along(a)
# [1] 1 2 3
seq_along(b)
# [1] 1 2
seq_along(c)
# [1] 1

seq(a)
# [1] 1 2 3
seq(b)
# [1] 1 2
seq(c)
# [1]  1  2  3  4  5  6  7  8  9 10

注目すべきは sample() も同じようなひどい動作をします。

sample(a)
# [1] 10  8  9
sample(b)
# [1]  9 10
sample(c)
# [1]  8  7  9  3  4  1  6 10  2  5