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

Font:

Версия 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 тип объекта обычно не влияет на вычисления, однако, имея дело с внешними языками или операционной системой, часто необходимо гарантировать корректность типа объекта.

The free excerpt has ended.

Age restriction:
12+
Release date on Litres:
04 April 2019
Volume:
91 p. 2 illustrations
ISBN:
9785449660299
Download format:
Draft, audio format available
Средний рейтинг 4,2 на основе 59 оценок
Draft
Средний рейтинг 4,3 на основе 28 оценок
Draft, audio format available
Средний рейтинг 4,7 на основе 89 оценок
Draft
Средний рейтинг 4,3 на основе 35 оценок
Audio
Средний рейтинг 4,2 на основе 951 оценок
Draft
Средний рейтинг 4,9 на основе 305 оценок
Draft
Средний рейтинг 4,5 на основе 48 оценок
Audio
Средний рейтинг 4,6 на основе 1012 оценок
Audio
Средний рейтинг 5 на основе 9 оценок