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

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

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

В языке доступны, как и наиболее частые математические формулы, такие как sin(х), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(x), log(x), log10(x), exp(x), abs(x), min(x), max(x), так и более специфические: range(x), mean(x), rank(x) и другие. Рассмотрим некоторые из них.

Следует отметить, что также как и в других языках, в R углы измеряются не в градусах, а в радианах.

Например

>#Найти синус числа 10

>sin(10)

[1] -0.5440211

>#Найти сумму элементов последовательности от 1 до 6

>sum(c(1:6)) [1] 21

>#Найти минимум и максимум последовательности

>range(c(1:6)) [1] 1 6

>#Найти произведение элементов последовательности

>prod(c(1:6)) [1] 720

>#Найти среднее и медианное среднее

>mean(c(1:6)) [1] 3.5 >median(c(1:6)) [1] 3.5

21

> #Вычислить СКО значений последовательности

>sd(c(1:6)) [1] 1.870829

2.5.Графики в R

R предлагает большое разнообразие графиков. Чтобы понять идею, можно напечатать demo (graphics). Просто невозможно описать все возможности R в отображении графиков, особенно когда каждый графическая функция имеет большое количество параметров.

Таблица 2 – Графические функции

plot(x)

График значений х (на оси у), упорядоченные

 

на оси х

 

 

plot(x,у)

Двумерный график

 

 

sunflowerplot(x,y)

Двумерный график(аналог plot()), но точки на

 

графике закрашены

 

 

piechart(x)

Круговая диаграмма

 

 

boxplot(x)

Ящик с усами

 

 

coplot (x~y|z)

Двумерный график х и у для каждого значения

 

z(если z-коэффициент(фактор))

 

 

interaction.plot

Если f1 и f2 - коэффициенты(факторы),

(f1, f2, x)

составляет график средних значений y (на оси

 

Y) относительно значений f1 (на оси X) и f2

 

(различные кривые); параметр fun = позволяет

 

выбирать основную статистику y (по

 

умолчанию fun=mean)

 

 

matplot (x, y)

Двумерный график первого столбца x с первым

 

из y, второй из x со вторым из y, и т.д.

 

 

22

dotplot (x)

Если x - data.frame, производится построение

 

Кливлендского точечного графика

 

 

 

pairs(x)

Если x - матрица или data.frame, рисует все

 

возможные

двумерные

графики

между

 

столбцами x

 

 

 

 

 

plot.ts (x)

Если x - объект класса ts,то отображает график

 

x относительно времени, x может быть

 

многомерен, но ряды должны иметь ту же

 

самую частоту и дату

 

 

 

 

ts.plot (x)

Аналог предыдущему, но если x многомерен,

 

ряды могут иметь различные даты ,а частоты те

 

же самые

 

 

 

 

 

 

 

hist(x)

Гистограмма частот х

 

 

 

 

 

 

barplot (x)

Гистограмма значений х

 

 

 

 

qqnorm (x)

Множество значений x относительно значений,

 

ожидаемых

согласно нормальному

закону

 

распределения

 

 

 

 

qqplot (x, y)

Множество значений y относительно множества

 

x

 

 

 

 

 

contour(x,y,z)

Создает график контура (используются

 

интерполированные данные), x и y должны

 

быть векторами и z должна быть матрица так,

 

чтобы dim (z) =c (длина (x), длина (y))

 

 

 

 

image(x,y,z)

Аналог предыдущего, но в цвете

 

 

 

 

 

persp(x,y,z)

Трехмерный график

 

 

 

 

 

 

 

23

Например

>hist(x)

>x <- seq(-pi,pi,.1)

>y <- cos(x)

>plot (x,y)

Рисунок 10 – График зависимости y от x

Например

> x <- seq(-pi,pi,.1) >hist(x, col = "green")

24

Рисунок 11 – Гистограмма

2.6.Управляющие структуры языка R

Оператор условий ifelse в R

В языке программирования R оператор условий ifelseсостоит из трех элементов:

индикатор структуры: if, else или elseif (в случае, когда условий больше одного);

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

тело структуры, заключенного в фигурные скобки (где находится код самого действия).

25

Например

В магазине акция: при покупке на сумму от 100$, предоставляется 12.5% скидка.

> shop <- function(x){

+if(x >= 100){

+x = x - x*12.5/100

+print(x)

+}

+}

> shop(200) [1] 175

Циклы while и for в R

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

Например

Допустим у нас есть друг, который решил заняться бегом. До этого он не бегал и находится в ужасной физической форме: максимум сколько он смог пробежать за первую тренировку - 100 метров. Друг пообещал, что через 100 дней он за тренировку будет пробегать больше 10 км, так как он разработал собственную методику: он будет заниматься ежедневно и прибавлять по 5% к дистанции от предыдущей нагрузки.

Проверим при помощи цикла for сработает ли его методика в теории. Для этого создадим функцию run.10km и переменную y,

26

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

>run.10km <- function(y){

+for(i in 1:100){

+y<-y+y*0.05

+}

+print(y)

+}

> run.10km(0.1) [1] 13.15013

Однако, тренироваться ежедневно без выходных для начинающего - это неминуемый путь к физическому и психическому истощению. Чтобы у друга дни нагрузок чередовались с днями отдыха, давайте предложим ему альтернативную методику: тренироваться через день, но прибавляя к дистанции по 10% от предыдущей нагрузки (вместо 5%).

Рассчитаем, используя цикл while, через сколько дней друг начнет пробегать более 10 км за тренировку и выведем результат в виде таблицы каждая строчка которой отображает день тренировки и предполагаемую дистанцию.

> alter.10km <- function(y){

+i<- 1

+Day <- i

+Distance <- y

27

+while(y <= 10){

+i<- i+ 2

+y<-y+y*0.1

+Day <- append(Day,i)

+Distance <- append(Distance,y)

+}

+DF <- data.frame(Day, Distance)

+return(DF)

+}

>

>results <- alter.10km(0.1)

>tail(results, 3) Day Distance

48 95 8.819749

49 97 9.701723

50 99 10.671896

Таким образом, наш друг с 99-го дня станет пробегать более 10 км за тренировку занимаясь реже, но интенсивнее.

3. Задание на самостоятельную работу

Задание 1. Создайте матрицу из 20 элементов и найдите сумму по строкам и столбцам.

Задание 2. Постройте график зависимости y=2*x2+5*x, где x принимает значения от -5 до 5 с шагом 0,5.

Задание 3. С помощью цикла реализовать задачу: в магазине акция: при покупке на сумму от 100$, предоставляется 12.5% скидка. Если сумма покупок больше или равна 1000$, то магазин предоставит

28

25% скидку. Если же ни первое, ни второе условие не соблюдается, то вывести на экран сообщение "Nodiscounts".

4.Контрольные вопросы для самопроверки

1.Как перейти из режима консоли в окно скрипта?

2.Как объявить переменную в языке R?

3.Для чего предназначена функция ls()?

4.Как получить информацию о типе данных переменной?

5.С помощью какой функции строится двумерный график?

6.Для чего используется математическая функция median()?

7.Как создать массив?

8.Как обратиться к элементам одномерного массива?

9.С помощью какой функции можно прочитать данные из текстового файла?

10.Какие циклы существуют в языке R?

5.Заключение

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

как SAS и SPSS.

Достоинства среды R:

бесплатная и кроссплатформенная;

богатый арсенал статистических методов;

29

качественная векторная графика;

более 7000 проверенных пакетов;

гибкая в использовании:

-позволяет создавать/редактировать скрипты и пакеты,

-взаимодействует с другими языками, такими: C, Java и Python,

-может работать с форматами данных для SAS, SPSS и STATA;

активное сообщество пользователей и разработчиков;

регулярные обновления, хорошая документация и тех. поддержка.

Недостатки:

небольшой объем информации на русском языке (хотя за последние пять лет появилось несколько обучающих курсов и интересных книг);

относительная сложность в использовании для пользователя, незнакомого с языками программирования. Частично это можно

сгладить, работая в GUI оболочке Rcmdr, о которой я писал выше,

но

для

нестандартных

решений

всеже

необходимо

использовать командную строку.

Библиографический список

1.Гмурман В.Е. Теория вероятностей и математическая статистика/ В.Е.Гмурман.М.:Высшая школа, 2000.-479с.

2.Лакин Г.Ф. Биометрия/ Г.Ф. Лакин. М: Высшая школа, 1990.-

352с.

3.Теория вероятностей и математическая статистика/ Под редакцией В.А. Колемаева. М: Высшая школа, 1991.-400с.

30

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