Какие ограничения на seq.int?

15

seqСтраница человек заявляет следующее (курсив мой):

Описание

Генерация регулярных последовательностей. seqстандартный стандарт с методом по умолчанию. seq.intэто примитив, который может быть намного быстрее, но имеет несколько ограничений .

Однако на странице не описываются эти ограничения. Вот все остальные упоминания о seq.intтам:

аргументы

[...]

length.outжелаемая длина последовательности. Неотрицательное число, которое для seqи seq.intбудет округлено, если дробное.

[...]

подробности

[...]

Интерпретация безымянных аргументов seqи seq.intне является стандартной, и рекомендуется всегда называть аргументы при программировании.

[...]

seq.intявляется внутренним универсальным, который отправляет методы для " seq" на основе класса первого предоставленного аргумента (до сопоставления аргумента).

seq.int, seq_alongИ seq_lenпримитивны.

Ценность

seq.intа метод по умолчанию seqдля числовых аргументов возвращает вектор типа " integer" или " double": программисты не должны полагаться на который.

Кроме указания того, что seq.intотправляет в seqсоответствии с классом первого аргумента, я не вижу никаких «ограничений».

Итак, каковы эти ограничения?

Wasabi
источник
Хороший момент, я добавлю, что все примеры, приведенные в файле справки для seqработы с тем же seq.int, за исключением значительно быстрее, так что не совсем понятно, зачем seqвообще их использовать . Может быть связано с twitter.com/BrodieGaslam/status/1196792003813621761
Moody_Mudskipper
@Moody_Mudskipper, именно поэтому я и спросил: я использовал seq.intпо привычке, но увидел этот комментарий на странице руководства, и теперь я хотел бы знать, не рискнул ли я использовать его бездумно.
Васаби
@Moody_Mudskipper и, к сведению, «документы никогда не обновлялись» было бы вполне приемлемым и неудивительным ответом.
Васаби
6
Я бы сказал: «Для seq (только), до двух из from, to и by могут быть предоставлены как комплексные значения, если указано length.out или наряду с. С помощью метода seq по умолчанию будет обрабатываться классифицированный объект с методы для обобщений групп Math, Ops и Summary. " объясняет ограничение. Вы можете сделать, seq(from = 0 + 1i, to = 10 + 1i, length.out = 11)но вы не можете сделать то же самое с seq.int.
Роланд
1
@Roland - может быть , вы должны добавить , что комментарий как ответ
DWW

Ответы:

5

seqявляется стандартной универсальной функцией, написанной на R. seq.intЭто примитивная функция, написанная на C. Хотя они оба написаны для выполнения одной и той же работы, из-за особенностей своих платформ они иногда могут иметь определенные ограничения. Ниже приведен пример.

введите описание изображения здесь

Обратите внимание, что это из старой версии Rи исправлено в текущих версиях. Подобные ошибки наблюдались на протяжении всего развития R, и они были исправлены как можно скорее. Текущие версии seq и seq.int теперь выглядят почти одинаково. Таким образом, не должно быть никаких ограничений seq.int.

Santanu
источник
спасибо за ваш ответ, можете ли вы вместо изображения выложить код (например, представитель) вместо изображения и включить комментарий Роланда в свой ответ (если он пока не публикует свой собственный ответ). Я также могу отредактировать ваш ответ и сделать это сам, если это хорошо для вас.
Moody_Mudskipper