Apa saja batasan pada seq.int?

15

The seqhalaman manual menyatakan berikut (penekanan):

Deskripsi

Hasilkan urutan teratur. seqadalah generik standar dengan metode default. seq.intadalah primitif yang bisa lebih cepat tetapi memiliki beberapa batasan .

Namun, halaman tersebut tidak benar-benar menggambarkan batasan itu. Berikut ini setiap penyebutan lainnya seq.int:

Argumen

[...]

length.outpanjang urutan yang diinginkan. Angka non-negatif, yang untuk seqdan seq.intakan dibulatkan jika fraksional.

[...]

Detail

[...]

Penafsiran argumen yang tidak disebutkan namanya seqdan seq.inttidak standar, dan dianjurkan untuk selalu menyebutkan argumen saat pemrograman.

[...]

seq.intadalah generik internal yang mengirimkan metode untuk " seq" berdasarkan kelas argumen yang disediakan pertama (sebelum pencocokan argumen).

seq.int, seq_alongdan seq_lenprimitif.

Nilai

seq.intdan metode default sequntuk argumen numerik mengembalikan vektor bertipe " integer" atau " double": programmer tidak boleh bergantung pada yang mana.

Selain menyatakan bahwa seq.intpengiriman seqsesuai dengan kelas argumen pertamanya, saya tidak melihat "batasan".

Jadi, batasan apa ini?

Wasabi
sumber
Poin baiknya, saya akan menambahkan bahwa semua contoh yang diberikan dalam file bantuan untuk seqbekerja sama dengan seq.int, kecuali secara dramatis lebih cepat, jadi tidak jelas mengapa digunakan seqsama sekali. Mungkin terkait dengan twitter.com/BrodieGaslam/status/1196792003813621761
Moody_Mudskipper
@Moody_Mudskipper itulah sebabnya saya bertanya: Saya sudah menggunakan seq.intkebiasaan, tetapi melihat komentar itu di halaman manual dan sekarang saya ingin tahu apakah saya telah mengambil "risiko" dalam menggunakannya tanpa berpikir.
Wasabi
@Moody_Mudskipper dan sebagai catatan, "dokumen tidak pernah diperbarui" akan menjadi jawaban yang sepenuhnya dapat diterima dan tidak mengejutkan.
Wasabi
6
Saya akan mengatakan "Untuk seq (hanya), hingga dua dari, ke dan oleh dapat diberikan sebagai nilai kompleks yang diberikan length.out atau sepanjang. Dengan ditentukan. Lebih umum, metode default seq akan menangani objek yang diklasifikasi dengan metode untuk generik grup Matematika, Ops dan Ringkasan. " menjelaskan batasan. Anda dapat melakukannya seq(from = 0 + 1i, to = 10 + 1i, length.out = 11)tetapi Anda tidak dapat melakukan hal yang sama dengannya seq.int.
Roland
1
@Roland - mungkin Anda harus menambahkan komentar itu sebagai jawaban
dww

Jawaban:

5

seqadalah fungsi generik standar yang ditulis dalam R. seq.intadalah fungsi primitif yang ditulis dalam C. Sementara keduanya ditulis untuk melakukan pekerjaan yang sama, karena melakukan kebiasaan platform mereka, mereka kadang-kadang dapat memiliki batasan tertentu. Berikut ini adalah contohnya.

masukkan deskripsi gambar di sini

Perhatikan bahwa ini dari versi lama Rdan sudah diperbaiki di versi saat ini. Jenis bug ini telah diamati selama pengembangan R dan telah ditambal sesegera mungkin. Versi seq dan seq.int saat ini terlihat hampir sama. Jadi, seharusnya tidak ada batasan lagi seq.int.

Santanu
sumber
terima kasih atas jawaban Anda, dapatkah Anda memposting kode (misalnya reprex) alih-alih gambar, dan sertakan komentar Roland dalam jawaban Anda (jika dia tidak memposting jawaban sendiri sementara itu). Saya juga dapat mengedit jawaban Anda dan melakukannya sendiri jika itu baik untuk Anda.
Moody_Mudskipper