Читать книгу «Определение языка R. Версия 3.5.2 (2018-12-20) DRAFT» онлайн полностью📖 — Александра Александровича Фоменко — MyBook.
image
cover

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

Версия 3.5.2 (2018-12-20) DRAFT

Рабочая группа разработки R


Переводчик Александр Александрович Фоменко

© Александр Александрович Фоменко, перевод, 2019

ISBN 978-5-4496-6029-9

Создано в интеллектуальной издательской системе Ridero

R Language Definition

Version 3.5.2 (2018-12-20) DRAFT

R Development Core Team

По вопросам перевода обращаться по адресу:

http://www.aafomenko@yandex.ru

Copyright © 2000—2012 R Development Core Team

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

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

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

1. Введение

– система для статистического вычисления и графики. Она включает, между прочим, язык программирования, высокоуровневую графику, интерфейсы к другим языкам и средства отладки. Этот справочник детализирует и определяет язык R.

Язык – диалект S, который был разработан в 1980-ых и с тех пор находится в широком использовании в статистическом сообществе. Его основной разработчик, Джон М. Чемберс, был награжден Премией по системному программному обеспечению ACM 1998 года за S.

У синтаксиса языка есть поверхностное подобие с C, но семантика принадлежит к семейству FPL (языкам функционального программирования) с более сильной аффилированностью с Lisp и APL. В частности, возможно «вычислять на языке», который поочередно позволяет записать функции, которые берут выражения в качестве входа, что-то, что часто полезно для статистического моделирования и графики.

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

Цель этого справочника состоит в документировании языка по существу. Это означает, объекты показаны, так как они работают, и детали процесса вычисления выражений, которые полезно знать при программировании функций R. Главные подсистемы для определенных задач, таких как графика, описаны только кратко в этом справочнике и будут задокументированы отдельно.

Хотя большая часть текста одинаково применима к S, есть также некоторые существенные различия, и чтобы не перепутать проблему, сконцентрируемся на описании R.

Проект языка содержит много тонкостей и распространенных ошибок, которые могут удивить пользователя. Большинство из них происходит из-за соображений непротиворечивости на более глубоком уровне, как мы объясним. Есть также много полезных ярлыков и идиом, которые позволяют пользователю выражать вполне сложные операции кратко. Многие из них становятся естественными по мере ознакомления с базовыми понятиями. В некоторых случаях существует много способов выполнить задачу, но некоторые из методов основаны на реализации языка, а другие работают на более высоком уровне абстракции. В таких случаях укажем на преимущественное использование.

Предполагается некоторое знакомство с R. Данное руководство не введение в R, а скорее справочник программиста. Другие справочники предоставляют дополнительную информацию: в особенности раздел «Предисловие» во Введении в R предоставляет введение в R, и раздел «Система и интерфейсы внешних языков» в Написание расширений R детализирует расширение R, используя скомпилированный код.

2. Объекты

На каждом машинном языке переменные обеспечивают средство доступа к данным, хранящимся в памяти. R не обеспечивает прямой доступ к памяти компьютера, а скорее обеспечивает много специализированных структур данных, именуемых как объекты. Эти объекты упомянуты через символы или переменные. В R, однако, символы – самостоятельно объекты и могут управляться таким же образом как любой другой объект. Этим он отличается от многих других языков и имеет широко распространяющиеся следствия.

В этой главе даны предварительные описания различных структур данных, предоставленных в R. Более детальные обсуждения многих из них будут найдены в последующих главах. Функция определения typeof в R возвращает тип объекта R. Заметим, что в коде C, лежащем в основе 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 тип объекта обычно не влияет на вычисления, однако, имея дело с внешними языками или операционной системой, часто необходимо гарантировать корректность типа объекта.

На этой странице вы можете прочитать онлайн книгу «Определение языка R. Версия 3.5.2 (2018-12-20) DRAFT», автора Александра Александровича Фоменко. Данная книга имеет возрастное ограничение 12+, относится к жанрам: «Книги о компьютерах», «Руководства».. Книга «Определение языка R. Версия 3.5.2 (2018-12-20) DRAFT» была издана в 2019 году. Приятного чтения!