Jakie są ograniczenia dotyczące seq.int?

15

seqStrona mężczyzna stwierdza, co następuje (podkreślenie moje):

Opis

Generuj regularne sekwencje. seqjest standardowym standardem z domyślną metodą. seq.intjest prymitywem, który może być znacznie szybszy, ale ma kilka ograniczeń .

Strona tak naprawdę nie opisuje, jakie są te ograniczenia. Oto każda inna wzmianka o seq.inttym:

Argumenty

[...]

length.outpożądana długość sekwencji. Liczba nieujemna, która dla seqi seq.intbędzie zaokrąglana w górę, jeśli ułamkowa.

[...]

Detale

[...]

Interpretacja nienazwanych argumentów seqi seq.intnie jest standardowa i zaleca się, aby zawsze programować nazwy argumentów.

[...]

seq.intto wewnętrzny rodzajowy, który wywołuje metody „ seq” oparte na klasie pierwszego dostarczonego argumentu (przed dopasowaniem argumentu).

seq.int, seq_alongI seq_lensą prymitywne.

Wartość

seq.inta domyślna metoda seqargumentów numerycznych zwraca wektor typu „ integer” lub „ double”: programiści nie powinni na tym polegać.

Poza stwierdzeniem, że seq.intwysyła seqzgodnie z klasą pierwszego argumentu, nie widzę żadnych „ograniczeń”.

Więc jakie są te ograniczenia?

Wasabi
źródło
Dobrze, dodam, że wszystkie przykłady podane w pliku pomocy do seqpracy są takie same, z seq.intwyjątkiem znacznie szybszych, więc nie jest jasne, po seqco w ogóle używać . Może być powiązany z twitter.com/BrodieGaslam/status/1196792003813621761
Moody_Mudskipper
@Moody_Mudskipper właśnie dlatego zapytałem: używam seq.intz przyzwyczajenia, ale zobaczyłem ten komentarz na stronie podręcznika i chciałbym teraz wiedzieć, czy podejmowałem jakiekolwiek „ryzyko”, używając go bezmyślnie.
Wasabi,
@Moody_Mudskipper, a dla przypomnienia „dokumentacja nigdy nie była aktualizowana” byłaby całkowicie akceptowalną i nie zaskakującą odpowiedzią.
Wasabi,
6
Powiedziałbym: „Dla seq (tylko) można podać do dwóch z od, do i by jako złożone wartości, pod warunkiem length.out lub wzdłu.z podanym. Mówiąc bardziej ogólnie, domyślna metoda seq będzie obsługiwać sklasyfikowane obiekty za pomocą metody matematyki, operacji i podsumowań grupowych ”. wyjaśnia ograniczenie. Możesz zrobić, seq(from = 0 + 1i, to = 10 + 1i, length.out = 11)ale nie możesz zrobić tego samego seq.int.
Roland
1
@Roland - może powinieneś dodać ten komentarz jako odpowiedź
dww

Odpowiedzi:

5

seqjest standardową funkcją ogólną napisaną w R. seq.intjest pierwotną funkcją napisaną w C. Chociaż oba są napisane, aby wykonywać tę samą pracę, z powodu dziwactw ich platform, czasami mogą mieć pewne ograniczenia. Oto przykład.

wprowadź opis zdjęcia tutaj

Zauważ, że pochodzi ze starej wersji Ri jest naprawiony w bieżących wersjach. Tego rodzaju błędy zaobserwowano w trakcie rozwoju R i zostały załatane jak najszybciej. Obecne wersje seq i seq.int wyglądają teraz prawie identycznie. Tak więc nie powinno być żadnych dalszych ograniczeń seq.int.

Santanu
źródło
dzięki za odpowiedź, czy możesz zamieścić kod (np. przedrostek) zamiast obrazu i dołączyć komentarz Rolanda do swojej odpowiedzi (jeśli w międzyczasie nie opublikuje własnej odpowiedzi). Mogę również edytować twoją odpowiedź i zrobić to sam, jeśli Ci to odpowiada.
Moody_Mudskipper