Was sind die Einschränkungen für seq.int?


15

Die seqManpage enthält Folgendes (Hervorhebung von mir):

Beschreibung

Generieren Sie regelmäßige Sequenzen. seqist ein Standard-Generikum mit einer Standardmethode. seq.intist ein Grundelement, das viel schneller sein kann, aber einige Einschränkungen aufweist .

Die Seite beschreibt jedoch nicht wirklich, was diese Einschränkungen sind. Hier ist jede andere Erwähnung von seq.intdort:

Argumente

[...]

length.outgewünschte Länge der Sequenz. Eine nicht negative Zahl, die für seqund seq.intaufgerundet wird, wenn sie gebrochen ist.

[...]

Einzelheiten

[...]

Die Interpretation der unbenannten Argumente von seqund seq.intist nicht Standard, und es wird empfohlen, die Argumente beim Programmieren immer zu benennen.

[...]

seq.intist ein internes Generikum, das Methoden für " seq" basierend auf der Klasse des ersten angegebenen Arguments (vor dem Argumentabgleich) auslöst.

seq.int, seq_alongUnd seq_lensind primitiv.

Wert

seq.intund die Standardmethode seqfür numerische Argumente gibt einen Vektor vom Typ " integer" oder " double" zurück: Programmierer sollten sich nicht auf welchen verlassen.

Abgesehen von der Angabe, dass seq.intSendungen seqgemäß der Klasse des ersten Arguments gesendet werden, sehe ich keine "Einschränkungen".

Was sind diese Einschränkungen?


Guter Punkt, ich werde hinzufügen, dass alle Beispiele in der Hilfedatei für die seqArbeit gleich sind seq.int, außer dramatisch schneller, so dass es nicht klar ist, warum seqüberhaupt verwendet werden.
Könnte

@Moody_Mudskipper Genau deshalb habe ich gefragt: Ich habe seq.intaus Gewohnheit verwendet, aber diesen Kommentar auf der Manpage gesehen, und jetzt möchte ich wissen, ob ich irgendwelche "Risiken" eingegangen bin , wenn ich ihn gedankenlos verwendet habe.
Wasabi

@Moody_Mudskipper und für die Aufzeichnung "die Dokumente wurden nie aktualisiert" wäre eine völlig akzeptable und nicht überraschende Antwort.
Wasabi

6
Ich würde sagen: "Für seq (nur) können bis zu zwei von from, to und by als komplexe Werte angegeben werden, sofern length.out oder Along.with angegeben ist. Im Allgemeinen behandelt die Standardmethode von seq klassifizierte Objekte mit Methoden für die Generika der Gruppen Math, Ops und Summary. " erklärt eine Einschränkung. Sie können es tun, seq(from = 0 + 1i, to = 10 + 1i, length.out = 11)aber Sie können nicht dasselbe tun seq.int.
Roland

1
@ Roland - vielleicht solltest du diesen Kommentar als Antwort hinzufügen
dww

Antworten:


5

seqist eine generische Standardfunktion, die in R geschrieben ist. seq.intist eine primitive Funktion, die in C geschrieben ist. Während beide geschrieben sind, um denselben Job zu erledigen, können sie aufgrund der Macken ihrer Plattformen manchmal bestimmte Einschränkungen haben. Das Folgende ist ein Beispiel.

Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass dies aus einer alten Version von stammt Rund in den aktuellen Versionen behoben ist. Diese Art von Fehlern wurde während der gesamten Entwicklung von R beobachtet und so schnell wie möglich behoben. Die aktuellen Versionen von seq und seq.int sehen jetzt fast identisch aus. Es sollte also keine Einschränkungen mehr geben seq.int.


Vielen Dank für Ihre Antwort. Können Sie anstelle eines Bildes eine Postleitzahl (z. B. einen Reprex) anstelle von Rolands Kommentar in Ihre Antwort aufnehmen (wenn er in der Zwischenzeit keine eigene Antwort veröffentlicht)? Ich kann Ihre Antwort auch bearbeiten und selbst tun, wenn das für Sie in Ordnung ist.
Moody_Mudskipper
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.