Введение в R версия 3.5.2 (2018-12-20). Заметки по R: среда программирования для анализа данных и графики

У. Н. Венэбльз

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

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Введение в R версия 3.5.2 (2018-12-20). Заметки по R: среда программирования для анализа данных и графики предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

2. Простые манипуляции; числа и векторы

2.1. Вектора и присваивания

R оперирует именованными структурами данных (data structures). Простейшая такая структура — это числовой вектор, который является отдельным объектом, состоящим из упорядоченного набора чисел. Чтобы создать вектор с именем x, скажем, состоящий из пяти чисел, а именно, 10.4, 5.6, 3.1, 6.4 и 21.7, используют команду R:

> x < — c (10.4, 5.6, 3.1, 6.4, 21.7)

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

С другими параметрами кроме типов векторов, таких как параметры режима списка, действие c () довольно отличается. Посмотрите Раздел 6.2.1 [Конкатенация списков].

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

Учтите, что оператор присваивания (» <-»), который состоит этих двух символов ‘ <’ («меньше чем») и ‘-’ («минус»), выполняется однонаправленно и «указывает» на объект, получающий значение выражения. В большинстве случаев можно использовать оператор ‘=’ в качестве альтернативы.

Также можно сделать присвоение, используя функцию assign (). Эквивалентный выше приведенному способ присвоения выглядит как:

> assign («x», c (10.4, 5.6, 3.1, 6.4, 21.7))

Обычный оператор < — может считаться синтаксическим сокращением для него.

Присвоения могут также быть сделаны в другом направлении, используя очевидное изменение в операторе присваивания. Таким образом, то же самое присвоение могло быть сделано, используя:

> c (10.4, 5.6, 3.1, 6.4, 21.7) — > x

Если выражение используется в качестве полной команды, значение печатается и теряется. Итак, если бы нам пришлось использовать команду:

> 1/x

то обратные величины пяти значений были бы напечатаны в терминале (а значение x, конечно, не изменилось).

В действительности все еще доступно .Last.value до выпполнения любого другого оператора.

Дальнейшее присваивание:

> y <-c (x, 0, x)

создаст вектор y с 11 элементами, состоящими из двух копий x и нулем между ними.

2.2. Векторная арифметика

Векторы могут использоваться в арифметических выражениях, и в этом случае операции выполняются поэлементно. Векторы, используемы в одном выражении, не обязательно должны иметь одинаковую длину. Если длины отличаются, то результат выражения — это вектор с длиной самого длинного вектора, который находится в выражении. Короткие векторы в выражении используются повторно столько раз, сколько это необходимо (возможно не целое число раз), до тех пор, пока они не совпадут с длиной самого длинного вектора. В частности константа просто повторяется. Так, учитывая предыдущие присваивания, команда:

> v <-2*x + y +1

создаст новый вектор v длины 11, составленный путем сложения элемент за элементом 2*x повторенного 2.2 раза, y повторяется только раз, и 1 повторяется 11 раз.

Элементарными арифметическими операторами являются +, — , *, / и ^ для возведения в степень. Дополнительно присутствуют все простые арифметические функции. log, exp, sin, cos, tan, sqrt и так далее, все они имеют свое обычное значение. max и min выбирают самые большие и наименьшие элементы вектора соответственно. range является функцией, значение которой — вектор длины два, а именно, c (min (x), max (x)). length (x) является числом элементов в x, sum (x) дает сумму всех элементов x, и prod (x) их произведение.

Двумя статистическими функциями являются mean (x), которая вычисляет среднее выборки, что соответствует sum (x) /length (x), и var (x), которая дает

sum ((x-mean (x)) ^2) / (length (x) — 1)

или дисперсию выборки. Если параметром var () является n-на-p матрица, значение — матрица ковариации выборки p-на-p, полученная путем интерпретации строк как p независимых векторов-выборок.

sort (x) возвращает вектор того же размера как x с элементами, расположенными в возрастающем порядке; однако доступны и другие более гибкие средства сортировки (см. order (), или sort.list (), которые производят перестановку при сортировке).

Заметим, что max и min выбирают самое большое и наименьшее значение в их аргументах, даже если им дают несколько векторов. Параллельные функции максимума и минимума pmax и pmin возвращают вектор (длины, равной их самому длинному аргументу), который содержит в каждом своем элементе наибольшее (наименьшее) значение на этой позиции во всех входных векторах.

В большинстве случаев пользователю не важно, являются ли «числа» в числовых векторах целыми, реальными или даже комплексными. Внутренние расчеты осуществляются в реальных числах двойной точности, или комплексных числах двойной точности, если входные данные являются комплексными.

Для работы с комплексными числами надо явно предоставить мнимую часть. Таким образом:

sqrt (-17)

даст NaN и предупреждение, но

sqrt (-17+0i)

сделает вычисления как комплексных чисел.

2.3. Генерация регулярных последовательностей

У R есть много средств для генерации используемых последовательностей обычных чисел. Например, 1:30 является вектором c (1, 2…, 29, 30). У оператора двоеточия есть высокий приоритет в пределах выражения, таким образом, например 2*1:15 является вектором c (2, 4…, 28, 30). Введите n <-10 и сравните последовательности 1:n-1 и 1: (n-1).

Выражение 30:1 может использоваться для создания обратной последовательности.

Функция seq () является более общим средством для генерации последовательности. У нее имеется пять параметров, только некоторые из которых могут специфицироваться в любом вызове. Первые два параметра, если дано, специфицируют начало и конец последовательности, и если только эти два параметра, то результат аналогичен оператору двоеточия. Например, seq (2,10) дает такой же вектор как 2:10.

Аргументы для seq () и ко многим другим функциям R, могут также быть даны в именованной форме, когда порядок, в котором они появляются, не важен. Первые два аргумента можно назвать from=value и to=value; таким образом, seq (1,30), seq (from=1, to=30) и seq (to=30, from=1) являются одинаковыми с 1:30. Следующие два аргумента для seq () можно назвать by=value и length=value, которые специфицируют размер шага и длину для последовательности соответственно. Если ни один из них не дан, то по умолчанию предполагается by=1.

Например:

> seq (-5, 5, by=.2) — > s3

генерирует вектор c (-5.0, — 4.8, — 4.6,…, 4.6, 4.8, 5.0). Подобно этому:

> s4 < — seq (length=51, from=-5, by=.2)

генерируется аналогичный вектор.

Пятый аргумент можно назвать along=vector, который используется как единственный аргумент и создает последовательность 1, 2…, length (вектор), или пустую последовательность, если вектор пуст (такое тоже может быть).

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

> s5 < — rep (x, times=5)

которая поместит пять копий x от начала до конца в s5. Другая полезная версия

> s6 < — rep (x, each=5)

которая повторит каждый элемент х пять раз перед пересылкой в следующую.

2.4. Логические векторы

Так же как числовые векторы, R позволяет манипулирование логическими величинами. У элементов логического вектора могут быть значение TRUE, FALSE, и NA (для «не доступно», см. ниже). Первые два часто сокращаются как T и F, соответственно. Заметим, однако, что T и F — только переменные, которые установлены в TRUE и FALSE по умолчанию, но не зарезервированные слова и, следовательно, могут быть перезаписаны пользователем. Следовательно, следует всегда использовать TRUE и FALSE.

Логические векторы генерируются условиями. Например:

> temp < — x> 13

устанавливает temp как вектор одинаковой длины как x со значением FALSE, соответствующих тем элементам x, где условие не соблюдается, и TRUE, где имеет место.

Логическими операторами являются <, <=,>,> =, ==

Конец ознакомительного фрагмента.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Введение в R версия 3.5.2 (2018-12-20). Заметки по R: среда программирования для анализа данных и графики предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я