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

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

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

1.10. Выполнение команд из файла или перенаправление вывода в файл

Если команды были сохранены во внешнем файле, скажем «command. R ’ в рабочем каталоге ’work’, то они могут быть выполнены в любое время в сеансе R командой:

> source («commands. r»)

Для Windows Source также доступен в меню File. Функция sink:

> sink("record.lis»)

отклонит весь последующий вывод консоли во внешний файл ‘record.lis’. Команда

> sink ()

восстановит вывод в консоли еще раз.

1.11. Сохранение данных и удаление объектов

Сущности, которые R создает и манипулирует, известны как объекты (object). Они могут быть переменными, массивами чисел, символьными строками, функциями или более общими структурами, построенных из таких компонентов.

Во время сеанса R объекты создаются и хранятся по имени (обсуждается в следующей секции). Команда R:

> objects ()

(также как ls ()) может использоваться для вывода на экран имен (в основном) объектов, которые в настоящий момент хранятся в пределах R. Набор объектов, сохраненных в настоящий момент, называют рабочей областью (workspace).

Для удаления объектов доступна команда rm:

> rm (x, y, z, ink, junk, temp, foo, bar)

Все объекты, создаваемые во время сеанса R, могут храниться постоянно в файле для использования в будущем сеансе R. В конце каждого сеанса R предоставляется возможность сохранить все в имеющиеся в данный момент объекты. Если подтвердить необходимость этого, то объекты записываются в файл, называемый». RData’ в текущем каталоге, а строки команд, использованных в сеансе, сохраняются в файл». Rhistory’.

При последующем запуске R рабочая область загружается из этого файла. Одновременно загружается присоединенная история команд.

Рекомендуется использовать отдельные рабочие каталоги для анализов, проводимых с R. Очень распространено использовать для анализа объекты с именами x и y. Подобные имена часто значимы в контексте отдельного анализа, но может быть довольно трудно решить то, чем они отличаются, если несколько анализов было выполнено в одном и том же каталоге.

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 возвращают вектор (длины, равной их самому длинному аргументу), который содержит в каждом своем элементе наибольшее (наименьшее) значение на этой позиции во всех входных векторах.

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

Для работы с комплексными числами надо явно предоставить мнимую часть. Таким образом:
<< 1 2 3 4 5 6 7 ... 9 >>
На страницу:
3 из 9