Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Статистическая обработка экспериментальных данных. Язык R в задачах планирования эксперимента. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
948 Кб
Скачать

При выходе из RGui, среда предложит сохранить рабочее пространство (рисунок 9).

Рисунок 9 – Сохранение рабочего пространства по выходу из Gui

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

11

2. Практическая часть

2.1.Основные операторы

Объявление переменных

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

Для передачи переменной значения в языке R применяется следующий оператор <- (меньше и минус).

Например

>A <- 1

>B <- “info”

>B <- A

Отображение и удаление объектов памяти

Функция ls() показывает объекты, находящиеся памяти, отображая только их названия.

При записи нескольких команд в одной строке, для того чтобы отделить одну команду от другой используется символ ";" (точка с запятой).

Например

> name <- "Имя"; n1 <- 1; n2 <- 100

>ls()

[1] "n1" "n2" "name"

12

Вывод значения переменной

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

Например

> n1 [1] 1

Обратите внимание на значение в квадратных скобках перед числом 100. Это индекс, по которому расположено данное значение в массиве A. Условно говоря, в языке R нет понятия скалярных величин. Все переменные векторного типа, и начинают свою нумерацию с 1, а не с 0, как в большинство языков программирования.

Текущая папка

Для того чтобы загружать данные и сохранять результаты работы необходимо указать текущий рабочий каталог, в котором располагаются все исходные данные и результаты работы. Чтобы указать текущую папку необходимо в настройках среды выбрать пункт меню: Файл Изменить папку…

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

Например

>#Указать текущим каталогом D:\users\845M

>setwd(‘D:/users/845M’)

>#Получить имя текущего каталога

>getwd()

13

Комментарии

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

Например

> # Программа 1

>A<- 1 # Комментарий к строке 1

2.2.Данные в R

Объекты

R работает с объектами, которые имеют два встроенных атрибута: тип данных и длина. Тип данных – вид элемента; имеются четыре типа данных: num(числовой), char(символьный), complex(комплексный) и logical(логический). Длина - общее количество элементов объекта.

Таблица 1 – Возможные типы данных для R объектов

 

 

Возможные типы

Использование в

Объект

 

объекте нескольких

 

данных

 

 

типов данных

 

 

 

 

 

 

 

vector

числовой,

символьный,

Нет

комплексный, логический

 

 

 

 

 

factor

числовой, символьный

Нет

 

 

 

 

array

числовой,

символьный,

Нет

комплексный, логический

 

 

 

 

 

 

matrix

числовой,

символьный,

Нет

комплексный, логический

 

 

 

 

 

 

14

data.frame

числовой,

символьный,

Да

 

комплексный, логичный

 

 

 

 

 

Ts

числовой,

символьный,

Да

комплексный, логический

 

 

 

 

 

 

 

числовой,

символьный,

 

List

комплексный,

логический,

Да

 

функция, выражение, формула

 

 

 

 

 

vector (вектор) – обычная переменная. factor (фактор) – категорийная переменная. array (массив) – таблица с k измерениями

matrix (матрица) – частный случай массива с k = 2. У массива и матрицы все элементы одного и того же типа.

data.frame – таблица состоящая из нескольких векторов одинаковой длины, но возможно различных типов.

Ts – набор данных временного ряда, содержащий дополнительные атрибуты, такие как: частота и дата.

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

Например

>A <- 1

>B <- “text”

>typeof(A) [1] “double” >typeof(B)

15

[1] “string”

Чтение данных из файла

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

Например

>#Читаем по строкам файл data.txt

>readLines("data.txt") [1] "12" "13" "14"

>#Читаем по строкам файл из Интернета readLines("https://valera.ws/files/ya.weather/cities-cp1251.csv")

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

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

Наиболее распространённый формат хранения данных, представленных в виде таблиц это CSV – значения, разделённые спецсимволами. По умолчанию, символом разделителем считается; Однако бывают и запятые, и знаки табуляции.

Верхнюю строку принято считать названиями столбцов. Если она присутствует в файле, то во время вызова команды необходимо указать параметр header = TRUE. Если строка с названиями столбцов

16

отсутствует, то параметр header требуется установить в значение

FALSE.

Например

>#Читаем содержимое таблицы stu.csv

>#Все поля таблицы разделяются символом;

>read.csv2("stu.csv", header = TRUE)

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

Например

>#Данныевариантывызоваэквивалентны

>read.csv2(file = "stu.csv", header = TRUE)

>read.csv2("stu.csv", TRUE)

>read.csv2(header = TRUE, file = "stu.csv")

>read.csv2("stu.csv")

>read.csv2(file = "stu.csv")

17

В том случае, если поля разделены другим символом, то необходимо указать ещё один параметр – sep. Он указывает на то, каким символом элементы строки будут дробиться на ячейки.

Например

> #Разделитель – точка с запятой

>read.csv2("stu.csv", sep= ;”)

2.3.Массивы

Операции с матрицами

Ключевым элементом статистической обработки являются данные. Наиболее часто эти данные представляются в наиболее удобном виде, в форме векторов, таблиц и матриц.

В языке R существует специальная функция c(), которая объединяет элементы в единый вектор.

Например

># Создать массив A из элементов 1, 2, …, 6

>A<- c(1,2,3,4,5,6)

># То же самое, но через диапазон

>A <- c(1:6)

Если требуется записать в переменную последовательность с учётом шага, то используется функция seq(). Если необходимо повторить несколько элементов подряд, то применяют функцию rep().

Например

># Создать массив B из элементов 1.0, 1.5, …, 3.0

>B <- seq(from = 1, to = 3, by = 0.5)

18

> # Создать массив C, содержащий 5 единиц подряд

>C<- rep(1, 5)

Индексирование элементов массива

Все элементы массива именуются, начиная с индекса 1. А сам индекс указывается в скобках. Рассмотрим несколько вариантов обращения к элементам одномерного массива (вектора) по их индексам.

Например

>#Получаем i-ый элемент массива В

>В[i]

>#Получаем вектор, в котором нет элемента

>#с индексом i

>B[-i]

>#Получаем вектор из n-первых элементов

>B[1:n]

>#Получаем вектор из всех элементов массива

>#кроме n-первых

>B[-(1:n)]

>#Получаем 1-ый и 3-ий элементы массива

>B[c(1,3)]

>#Выбираем только те элементы, которые > 5

>B[B > 3]

>#Выбираем элементы, входящие в диапазон (-1; 3]

19

x[x > -1 & x <=3]

Для работы с матрицами в языке предусмотрены следующие возможности.

Например

>#Получаем транспонированную матрицу M

>t(M)

>#Получаем главную диагональ матрицы M

>diag(M)

>#Перемножение матриц M и N

>M%*%N

>#Находит решение СЛАУ

>solve(A, B)

>#Обратная матрица

>solve(A)

>#Вычисление сумм элементов по каждой строке

>rowsum(M)

>#Вычисление средних значений по столбцам

>colMeans(M)

2.4.Математические операции

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

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]