Определение языка R. Версия 3.5.2 (2018-12-20) DRAFT - страница 3

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


лежащем в основе R, все объекты являются указателями на структуру с определением типа SEXPREC; различные типы данных R представлены в C SEXPTYPE, который определяет, как используется информация в различных частях структуры.

Следующая таблица описывает возможное значение, возвращенное typeof, и их значение.

«NULL»

NULL

«symbol»

имя переменной

«pairlist»

парный объект (в основном внутренний)

«closure»

функция

«environment»

окружающая среда

«promise»

объект, используемый для отложенной оценки

«language»

конструкция языка R

«special»

внутренняя функция, которая не вычисляет свои аргументы

«builtin»

внутренняя функция, которая вычисляет свои аргументы

«char» a «scalar»

строковый объект (только внутренний) ***

«logical»

вектор, содержащий логические значения

«integer»

вектор, содержащий целые значения

«double»

вектор, содержащий реальные значения

«complex»

вектор, содержащий комплексные значения

«character»

вектор, содержащий символьные значения

«…»

аргумент определенной переменной длины ***

«any»

специальный тип, который заменяет все типы: не существует объектов такого типа

«expression»

объект выражение

«list»

список

«bytecode»

код в байтах (только внутренне) ***

«externalptr»

объект внешнего указателя

«weakref»

объект слабой ссылки

«raw»

вектор, содержащий байты

«S4»

объект S4, который не является простым объектом

Пользователи не могут просто получить объекты, помеченные «***».


Функциональный режим дает информацию о режиме объекта в смысле Becker, Chambers & Wilks (1988), и является более совместимым с другими реализациями языка S. Наконец, функция storage.mode показывает режим хранения ее аргумента в смысле Беккера и др. (1988). Она обычно используется при вызове функции, записанной на другом языке, таких как C или ФОРТРАН для гарантирования, что объекты R имеют тип данных, который ожидает вызываемая подпрограмма. (На языке S векторы с целочисленными или действительными значениями имеют оба «числовой» режим, таким образом, их режимы хранения нужно отличать.)

> x <– 1:3
> typeof (x)
[1] «integer»
> mode (x)
[1] «numeric»
> storage.mode (x) [1] «integer»

Объекты в R часто преобразовываются к различным типам во время вычислений. Также имеется много доступных функций для выполнения явного преобразования. При программировании на языке R тип объекта обычно не влияет на вычисления, однако, имея дело с внешними языками или операционной системой, часто необходимо гарантировать корректность типа объекта.