2016-01-14 2 views
0

Класс numeric включает подкатегории integer и double. Интересно, что класс переменной зависит от способа ее инициализации. Например:Как объект может иметь два разных класса в R?

x <- c(0,0,0,0,0,1,1,1,1,1) 
y <- rep(0:1, c(5,5)) 

x 
# [1] 0 0 0 0 0 1 1 1 1 1 
y 
# [1] 0 0 0 0 0 1 1 1 1 1 

class(x) 
# [1] "numeric" 
class(y) 
# [1] "integer" 

identical(x,y) 
# [1] FALSE 

Мой вопрос: почему R не принуждать x в примере к классу целого числа? Я думаю, что было бы более целесообразно сделать это, поскольку x - это integer и вектор numeric, но вектор numeric не обязательно является вектором целых чисел. Следовательно, принуждение x быть целым классом может быть более интуитивным, по крайней мере для меня. Я что-то упускаю?

ответ

-1

При вводе 0 R понимает это как числовое (двойное). Целое число должно быть напечатано как 0L. И, конечно, : документирован, чтобы возвращать целочисленные значения ", если from является целочисленным, а результат представляется в R целочисленном типе".

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