Читать онлайн полностью бесплатно Александр Фоменко - Определение языка R. Версия 3.5.2 (2018-12-20) DRAFT

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

Данная книга является переводом одноименной книги из комплекта технической документации, поставляемой в составе дистрибутива R, и призвана восполнить пробел в русской локализации системы 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://[email protected]


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»


Ваши рекомендации