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
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/1196792003813621761seq.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 comseq.int
.Respostas:
seq
é uma função genérica padrão escrita em R.seq.int
é uma função primitiva escrita em C. Enquanto os dois são escritos para fazer o mesmo trabalho, devido às peculiaridades de suas plataformas, às vezes eles podem ter certas restrições. O seguinte é um exemplo.Observe que isso é de uma versão antiga
R
e é corrigido nas versões atuais. Esses tipos de bugs foram observados durante o desenvolvimento do R e foram corrigidos o mais rápido possível. As versões atuais do seq e seq.int agora parecem quase idênticas. Portanto, não deve haver mais restriçõesseq.int
.fonte