18+
реклама
18+
Бургер менюБургер меню

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

18

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

> 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, где имеет место.

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

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

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.