A seq
página de manual declara o seguinte (ênfase minha):
Descrição
Gere seqüências regulares.
seq
é um genérico padrão com um método padrão.seq.int
é um primitivo que pode ser muito mais rápido, mas tem algumas restrições .
A página, na verdade, não descreve quais são essas restrições. Aqui estão todas as outras menções a seq.int
isso:
Argumentos
[...]
length.out
comprimento desejado da sequência. Um número não negativo, que paraseq
eseq.int
será arredondado se for fracionário.[...]
Detalhes
[...]
A interpretação dos argumentos não nomeados
seq
eseq.int
não é padrão, e é recomendável sempre nomear os argumentos durante a programação.[...]
seq.int
é um genérico interno que envia métodos para "seq
" com base na classe do primeiro argumento fornecido (antes da correspondência de argumentos).
seq.int
,seq_along
Eseq_len
são primitivo.Valor
seq.int
e o método padrãoseq
para argumentos numéricos retorna um vetor do tipo "integer
" ou "double
": os programadores não devem confiar em qual.
Além de declarar que é seq.int
despachado de seq
acordo com a classe de seu primeiro argumento, não vejo nenhuma "restrição".
Então, quais são essas restrições?
seq.int
por hábito, mas vi esse comentário na página de manual e agora gostaria de saber se estou assumindo "riscos" ao usá-lo sem pensar.
seq(from = 0 + 1i, to = 10 + 1i, length.out = 11)
mas não pode fazer o mesmo com seq.int
.
seq
funcionam da mesma maneiraseq.int
, exceto dramaticamente mais rápido, portanto não está claro por que usarseq
. Pode estar relacionado ao twitter.com/BrodieGaslam/status/1196792003813621761