Потому что это numeric
, а не integer
. Если нам нужно integer
, мы можем использовать
v1 <- c(4L, 4L)
или преобразовать в integer
с помощью as.integer
v2 <- as.integer(c(4, 4))
, а затем проверить class
Согласно ?numeric
число c идентично двойному (и реальному). Он создает вектор двойной точности указанной длины с каждым элементом, равным 0.
Также в ?integer
Обратите внимание, что в текущих реализациях R используется 32- битовые целые числа для целочисленных векторов, поэтому диапазон представляемых целых чисел ограничен примерно до +/- 2 * 10 ^ 9: двойные числа могут содержать гораздо большие целые числа.
Указано использование L
в ?NumericConstants
Числовая c константа, сразу после которой следует L, рассматривается, когда это возможно, как целое число (и с предупреждением, если оно содержит «.»).