Р: Почему c (4,4) удваивается? - PullRequest
1 голос
/ 18 апреля 2020

На мой взгляд, c(4,4), очевидно, является вектором целых чисел, но typeof(c(4,4)) сообщает, что c (4,4) является двойным числом. Почему это?

1 Ответ

3 голосов
/ 18 апреля 2020

Потому что это 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, рассматривается, когда это возможно, как целое число (и с предупреждением, если оно содержит «.»).

...