seq
Strona mężczyzna stwierdza, co następuje (podkreślenie moje):
Opis
Generuj regularne sekwencje.
seq
jest standardowym standardem z domyślną metodą.seq.int
jest 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.int
tym:
Argumenty
[...]
length.out
pożądana długość sekwencji. Liczba nieujemna, która dlaseq
iseq.int
będzie zaokrąglana w górę, jeśli ułamkowa.[...]
Detale
[...]
Interpretacja nienazwanych argumentów
seq
iseq.int
nie jest standardowa i zaleca się, aby zawsze programować nazwy argumentów.[...]
seq.int
to wewnętrzny rodzajowy, który wywołuje metody „seq
” oparte na klasie pierwszego dostarczonego argumentu (przed dopasowaniem argumentu).
seq.int
,seq_along
Iseq_len
są prymitywne.Wartość
seq.int
a domyślna metodaseq
argumentów numerycznych zwraca wektor typu „integer
” lub „double
”: programiści nie powinni na tym polegać.
Poza stwierdzeniem, że seq.int
wysyła seq
zgodnie z klasą pierwszego argumentu, nie widzę żadnych „ograniczeń”.
Więc jakie są te ograniczenia?
seq
pracy są takie same, zseq.int
wyjątkiem znacznie szybszych, więc nie jest jasne, poseq
co w ogóle używać . Może być powiązany z twitter.com/BrodieGaslam/status/1196792003813621761seq.int
z 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.seq(from = 0 + 1i, to = 10 + 1i, length.out = 11)
ale nie możesz zrobić tego samegoseq.int
.Odpowiedzi:
seq
jest standardową funkcją ogólną napisaną w R.seq.int
jest 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.Zauważ, że pochodzi ze starej wersji
R
i 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
.źródło