Введение в R версия 3.5.2 (2018-12-20). Заметки по R: среда программирования для анализа данных и графики. У. Н. Венэбльз
Читать онлайн книгу.кроме как косвенно при обсуждении формул (formulae), используемых при моделировании R.
Типом (mode) объекта обозначили основной тип его фундаментальных свойств. Это – особый случай «свойств» объекта. Другое свойство каждого объекта – своя длина. Можно использовать функции mode (object) и length (object), чтобы узнать тип и длину любой определенной структуры.
Заметим, однако, что length (object) не всегда содержит явную полезную информацию, например, когда object – функция.
Другие свойства объекта обычно получают посредством attributes (object), смотри Раздел 3.3 [Получение и установка атрибутов]. Из-за этого тип и длину также называют «внутренними атрибутами» объекта.
Например, если z – комплексный вектор длины 100, то в выражении mode (z) является символьной строкой «complex», и length (z) равна 100.
R обслуживает изменения типа практически везде, где это имеет смысл сделать, и иногда там, где этого не так. Например, с:
> z <-0:9
можно ввести
> digits <– as.character (z)
после которого digits является символьным вектором c («0», «1», «2»…, «9»). Дальнейшее приведение, или изменение типа, восстанавливает числовой вектор снова:
> d <– as.integer (digits)
Теперь d и z одинаковы. Существует большое количество функций вида as.something () или для приведения от одного типа к другому, или для наделения объекта некоторым другим атрибутом, которым он, возможно, еще не обладает.
В целом приведение от числового к символьному типу и назад не будет точно обратимо из-за ошибок округления в символьном представлении.
Читатель должен консультироваться с различными справочными файлами для ознакомления.
3.2. Изменяющаяся длина объекта
«Пустой» объект может все еще иметь тип. Например:
> e <– numeric ()
делает e пустой векторной структурой типа числовой (numeriс). Так же character () является пустым символьным вектором, и так далее. Как только объект любого размера был создан, новые компоненты могут быть просто добавлены к нему, давая ему значение индексов вне его предыдущего диапазона. Таким образом:
> e [3] <– 17
теперь делает e вектором длины 3, (первые две компоненты, которого равны NA). Это применяется к любой структуре вообще, если тип дополнительного компонента (ов) согласован с типом первого объекта.
Эта автоматическая настройка длин объекта часто используется для ввода, например, в функции scan () (см. Раздел 7.2 [Функция scan ()]).
Наоборот требуется усечение размера объекта для выполнения присвоения. Следовательно, если alpha – объект длины 10, то
> alpha <– alpha [2 * 1:5]
делает его объектом длины 5, состоящим только из прежних компонентов с четным индексом. (Старые индексы не сохранены, конечно). Затем можно сохранить только первые три значения:
> length (alpha) <– 3
и вектор может быть расширен (путем пропущенных значений) аналогичным образом.
3.3. Получение