Оценить:
 Рейтинг: 0

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

<< 1 2 3 4 5 6 >>
На страницу:
4 из 6
Настройки чтения
Размер шрифта
Высота строк
Поля

Вектор не является одномерным массивом, так как у последнего атрибут размерности длиною один, тогда как у вектора атрибут размерности отсутствует.

2.2.3. Имена размерности

Массивы могут назвать каждую размерность, отдельно используя атрибут имен размерности (dimnames), который является списком символьных векторов. У списка имен размерностей самостоятельно могут быть имена, которые затем используются для заголовков пределов при печати массива.

2.2.4. Классы

У R есть тщательно продуманная система классов, которая преимущественно управляется через атрибут класса. Этот атрибут – символьный вектор, содержащий список классов, от которых наследовался объект. Он формирует основание «универсальных методов» функциональности R.

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

2.2.5. Атрибуты временных рядов

Атрибут tsp используется для поддержания аргументов временного ряда: начало, конец и частота. Эта конструкция, главным образом, используется для обработки рядов с периодической подструктурой, например, месячные или квартальные данные.

2.2.6. Копирование атрибутов

Атрибуты копируются при изменении объекта, находящегося в комплексной области, по некоторым общим правилам (Becker, Chambers & Wilks, 1988, стр. 144—6).

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

Бинарные операции обычно копируют большинство атрибутов более длинного аргумента (и если они имеют одинаковую длину для обоих, то предпочитается значение для первого). Здесь «большинство» означает все кроме имен, размерностей и имен размерностей, которые установлены соответственно кодом для оператора.

Подмножество (кроме индексированных пустым индексом) обычно отбрасывает все атрибуты кроме имен, размерностей и имен размерностей, которые сброшены как соответствующие. С другой стороны подприсвоение обычно сохраняет атрибуты, даже если длина изменена. Приведение отбрасывает все атрибуты.

Метод по умолчанию для сортировки отбрасывает все атрибуты кроме имен, которые сортируются наряду с объектом.

2.3. Специальные составные объекты

2.3.1. Факторы

Факторы используются для описания элементов, у которых может быть конечное количество значений (пол, социальный класс, и т.д.). У фактора есть атрибут уровней и класс «фактор» (factor). Дополнительно, он также может содержать атрибут contrasts, который управляет параметризацией при использовании факторов в функциях моделирования.

Фактор может быть просто номинальным или, возможно, иметь упорядоченные категории. В последнем случае он должен быть определен как таковой и иметь вектор класса (class)c («ordered»,» factor»).

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

2.3.2. Объект фрейм данных

Фреймы данных является структурой R, которая наиболее близко подражает SAS или набору данных SPSS, то есть «переключение переменными ” матриц данных.

Фрейм данных является списком векторов, факторов, и/или матриц, имеющих одинаковую длину (число строк в случае матриц). Кроме того, у фрейма данных обычно есть атрибут имен, маркирующий переменные и атрибут row.names для маркировки переключателей (cases).

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

3. Оценка выражений

При вводе команды пользователем в запросе (или при считывании выражения из файла), сначала команды преобразуются синтаксическим анализатором во внутреннее представление. Средство оценки выполняет синтаксический анализ выраженияR и возвращает значение выражения. У всех выражений есть значение. Это – основа языка.

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

Пользователи могут создать выражения и вызвать их оценку.

3.1. Простая оценка

3.1.1. Константы

Любое число, введенное непосредственно в запросе, является константой и оценивается.

> 1
[1] 1

Возможно, неожиданно, но число, возвращенное из выражения 1, является действительным. В большинстве случаев разница между целым числом и действительным значением будет незначительна, поскольку R делает округление справа при использовании чисел. Однако может возникнуть необходимость создания целочисленного значения для константы, что можно сделать, вызывая функцию as.integer или используя различные другие методы. Но возможно самый простой подход состоит в сопровождении константы символьным суффиксом «L». Например, для создания целочисленного значения 1 можно использовать:

> 1L
[1]

Можно использовать суффикс «L», чтобы квалифицировать любое число с намерением создания из него явно целое число. Таким образом, «0x10L» создает целочисленное значение 16 из шестнадцатеричного представления. Константа 1e3L дает 1000 как целое число, а не числовое значение и эквивалентна 1000L. Заметим, что «L» обработан как квалификация аргумента 1e3 а не 3. Если квалифицируем значение с «L», которое не является целочисленным значением, например, 1e-3L, то получаем предупреждение, и создается действительное значение. Также получаем предупреждение при наличии ненужной десятичной точки в числе, например, 1.L.

Получим синтаксическую ошибку при использовании «L» с комплексными числами, например, 12iL дает ошибку.

Константы являются довольно скучными, и не будем больше тратить слова.

3.1.2. Просмотр символов

При создании новой переменной у нее должно быть имя, что дает возможность на нее сослаться, и у нее обычно есть значение. Само имя – символ. При оценке символа возвращается его значение. Позже объясним подробно, как определить значение, которое имеет символ.

В этом небольшом примере y – символ и его значение 4. Символ также является объектом R, но редко возникает необходимость иметь дело с символами непосредственно, кроме случаев «Программирование на языке» (Глава 6 [Вычисления на языке], страница 32).

> y <– 4
> y
[1] 4

3.1.3. Вызов функции

Большинство вычислений, выполненных в R, включает оценку функций, называемых как вызов функции. Функции вызываются по имени со списком аргументов, разделенных запятыми.

> mean (1:10)
[1] 5.5

В этом примере функция mean (средняя) была вызвана с одним аргументом, вектором целых чисел от 1 до 10.

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

Вызовы функции могут тегировать (или называть) аргументы, как в plot (x, y, pch = 3), аргументы без тегов известны как позиционные, так как функция должна отличить их значение от их последовательных позиций среди аргументов вызова, например, что x обозначает переменную абсциссы, а y ординату. Использование тегов/имен – очевидное удобство для функций с большим количеством дополнительных аргументов.

Специальный тип вызовов функции может появиться на левой стороне оператора присваивания как в:

<< 1 2 3 4 5 6 >>
На страницу:
4 из 6