seq.intの制限は何ですか?


15

seqmanページには、次の(強調鉱山)を述べています:

説明文

通常のシーケンスを生成します。seqデフォルトのメソッドを持つ標準的なジェネリックです。seq.intプリミティブであり、はるかに高速ですが、いくつかの制限があります。

ただし、このページでは、これらの制限について実際に説明していません。ここに他のすべての言及がseq.intあります:

議論

[...]

length.outシーケンスの長さ。負seqseq.intはない数値。小数の場合は切り上げられます。

[...]

細部

[...]

seqおよびの無名引数の解釈はseq.int標準ではありません。プログラミング時には常に引数に名前を付けることをお勧めします。

[...]

seq.intseq最初に指定された引数のクラス(引数のマッチング前)に基づいて" "のメソッドをディスパッチする内部ジェネリックです。

seq.intseq_alongおよびseq_lenプリミティブです。

seq.intseq数値引数のデフォルトのメソッドは、タイプが「integer」または「double」のベクトルを返します。プログラマはこれに依存しないでください。

最初の引数のクラスに従ってseq.intディスパッチseqすることを述べる以外に、「制限」はありません。

では、これらの制限は何ですか?


良い点は、劇的に高速になることを除いて、ヘルプファイルで提供されるすべての例seqがと同じように機能することを追加します。そのseq.intため、なぜ使用するのかは明確ではありませんseqtwitter.com/BrodieGaslam/status/1196792003813621761
Moody_Mudskipper

@Moody_Mudskipperは、まさに私が尋ねた理由です。私seq.intは習慣から使用してきましたが、そのコメントをmanページで見て、今、私がそれを不注意に使用することで「リスク」を受けているかどうか知りたいのです。
Wasabi

@Moody_Mudskipperと、記録としては、「ドキュメントは更新されなかった」というのは、完全に受け入れ可能で、驚くべき答えではありません。
Wasabi

6
「seq(のみ)の場合、from、to、byの最大2つは、length.outまたはalong.withが指定されている場合、複雑な値として指定できます。より一般的には、seqのデフォルトのメソッドは、 Math、Ops、Summaryグループのジェネリックのメソッド。」制限について説明します。できますseq(from = 0 + 1i, to = 10 + 1i, length.out = 11)が、で同じことはできませんseq.int
ローランド

1
@Roland-そのコメントを回答として追加する必要があるかもしれません
dww

回答:


5

seqはR seq.intで記述された標準のジェネリック関数です。はCで記述されたプリミティブ関数です。どちらも同じ作業を行うように記述されていますが、プラットフォームの癖により、特定の制限がある場合があります。以下に例を示します。

ここに画像の説明を入力してください

これはの古いバージョンのものでRあり、現在のバージョンでは修正されています。これらの種類のバグはRの開発を通じて観察されており、できるだけ早くパッチが適用されています。seqseq.intの現在のバージョンは、ほとんど同じに見えます。したがって、に対するこれ以上の制限はありませんseq.int


回答に感謝します。画像の代わりにコード(例:reprex)を投稿し、回答にローランドのコメントを含めることができます(その間、彼が独自の回答を投稿しなかった場合)。回答を編集して、問題がなければ自分で編集することもできます。
Moody_Mudskipper
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.