Введение в R версия 3.5.2 (2018-12-20). Заметки по R: среда программирования для анализа данных и графики - страница 21

Шрифт
Интервал


сигнализировал бы ошибку о несоответствии длине. Как экстремальный, но типичный пример:

> Z <– array (0, c (3,4,2))

делает Z массивом всех нулей.

В этой месте dim (Z) обозначает вектор размерности c (3,4,2), и Z [1:24] содержит вектора данных, как это было в h, и Z [] с пустым нижним индексом или Z без нижнего индекса поддерживает весь массив в качестве массива.

Массивы могут использоваться в арифметических выражениях, и результат является массивом, сформированным поэлементно операциями на векторах данных. Атрибуты dim операндов обычно должны быть одинаковыми, и они становятся вектором размерности результата. Так, если все A, B и C являются подобными массивами, то:

> D <-2*A*B + C +1

делает D подобным массивом с его вектором данных, являющимся результатом данной поэлементно операции. Однако точное правило относительно смешанного массива и векторных вычислений нужно рассмотреть немного более тщательно.

5.4.1. Смешанный вектор и арифметика массива. Правило рецикличности

Точное правило, влияющее поэлементно на смешанные вычисления с векторами и массивами, является более изощренными и точно описаны в ссылках. Из опыта найдено следующее надежное руководство.

– Выражение просматривается слева направо.

– Любые короткие векторные операнды расширяются циклически их значениями, пока они не совпадет с размером любых других операндов.

– Если длинные и короткие вектора с массивами лишь пересчитываются, то все массивы должны иметь одинаковый атрибут dim или будет выдана ошибка.

– Любой векторный операнд более длинный, чем операнд матрицы или массива, генерирует ошибку.

– Если имеются структуры массива, и нет ошибок, или приведение к вектору было выполнено, то результат – структура массива с общим атрибутом dim ее операндов массива.

5.5. Внешнее произведение двух массивов

Важной операуцией на массивах является внешнее произведение. Если a и b – два числовых массива, их внешнее произведение – массив, вектор размерности которого получен, связывая их два вектора размерности (порядок важен), и чей вектор данных получен путем формирования всех возможных произведений элементов вектора а с соответствующим элементами вектора b. Внешнее произведение выполняется специальным оператором %o%:

> ab <-%o % b

Альтернатива

> ab <– outer (a, b, «*»)

Функция умножения может быть заменена произвольной функцией двух переменных. Например, если необходимо оценить функцию