R устанавливает значение по умолчанию. Почему не потолок () или круг ()? - PullRequest
1 голос
/ 11 октября 2019

Рассмотрим следующий глупый пример:

x <- 50.8 # number of rows
y <- 100 # number of columns

res <- array(dim = c(x, y, 1))
dim(res) # dimensions of res = 50 100 1

Ясно, что x должно быть целым числом.

В этом случае (и во всех случаях) R округляется, беря слово (x).

Есть ли какая-либо конкретная причина того, почему R использует floor () вместо потолка () или round ()?

Мне кажется, что в floor () нет ничего особенного.

1 Ответ

1 голос
/ 11 октября 2019

tldr; Аргумент dim array приводит числа к целым числам.


От ?array (жирный шрифт)

dim: атрибут dim для создаваемого массива, то есть целочисленный вектор длины один или более, дающий максимальные индексы в каждом измерении.

Итак c(x, y, 1) будет приведен к integer вектору. Если мы копнем немного глубже, мы обнаружим, что это происходит в реализации кода C array с использованием вспомогательной функции C asInteger (см. строки 101 и 109 исходного кода ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...