2016-12-05 6 views
1

Почему выходной результат в R?R: разные классы результата seq()

> class(seq(1,10)) 
[1] "integer" 
> class(seq(1,10,1)) 
[1] "numeric" 

Это потому, что можно было бы назвать seq(1,10,0.5) и таким образом создать двойные значения? Но тогда почему я не проверяю, являются ли начальные и конечные размеры целыми или это слишком много?

+1

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

+0

Hm ok Я должен прочитать документацию ... Но это просто определение или есть что-то более фундаментальное позади этого выбора? –

+0

Предоставить целочисленные входы для целых выходов, 'class (seq (1L, 10L, 1L))'. –

ответ

0

Я думаю, что это из-за третьего варианта, который вы указали. Целое число не может принимать десятичные значения в R, в то время как числовое значение. Когда вы определяете его без третьего аргумента, он будет считать класс целым, но если вы определяете третий аргумент, это может быть и плавающее значение. Таким образом, R определил его таким образом.

Смежные вопросы