Добавил:
По своей натуре перфекционист. Поэтому люблю все аккуратно оформлять и упорядочивать, складывать по полочкам. Вот, не пропадать же добру, нажитому за четыре кропотливых семестра. Тут я выложил все мои ответы, курсовые, отчеты и некоторые ДЗ. Они могут вам помочь для получения зачета или сдачи экзамена. Если чего-то не нашли в папочках, то попытайте удачу в разделе НЕОТСОРТИРОВАННОЕ на моей страничке, там все 4 семестра разложены по папкам. ГРУППА КТ-43-15. Годы обучения 2015-2019. Коллекция будет пополняться. Что ж, удачки :З Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
15.09.2017
Размер:
451.1 Кб
Скачать

2. Работа с data frame

Все

используемые

файлы

доступны

по

ссылке:

https://goo.gl/VSIZ9c.

 

 

 

 

Итак,

ранее

мы

научились (я

надеюсь)

как

работать

с переменными,

векторами. Как

создавать

и работать с

табличными данными. Но как правило при анализе данных мы сами не создаем табличные данные. Мы работаем с готовыми данными. В каком виде обычно представлены данные в интернете? Обычно это Excel-таблицы, текстовые данные, xml данные, JSON данные, SQL запросы. Сейчас же мы поговорим о представлении данных в виде csv файлах. Что такое csv файл? Это текст, в котором одна строка текста соответствует одной строке таблицы, а колонки разделены каким-то разделителем. Чаще всего этим разделителем является запятая, но если в русскоязычном офисном табличном редакторе создать csv файл из таблицы, то разделителем будет точка с запятой.

Хорошо, допустим у нас есть какой-то csv файл. Как нам с ним работать в R? Для этого есть специальная функция read.csv. Более

подробно ознакомиться

с работой этой функции

можно

при помощи знака “?”,

после которого необходимо

написать

функцию, справку по которой мы хотим получить.

 

?read.csv

В скобках в кавычках указывается название с расширением загружаемого csv файла. Если разделителем в csv является

не запятая, то через запятую указываем необходимый нам разделитель.

mydata <- read.csv('evals.csv')

#разумеется, у вас может быть другое название файла

#также убедитесь, что файл находится в рабочей директории

#или укажите полный путь к файлу

Чтобы не выводить все строки датафрейма, можно использовать функции head () и tail (), которые по умолчанию показывают первые шесть и последние шесть значений датафрейма соответственно. Естественно, можно самому задавать необходимое количество выводимых строк.

head(mydata, 3) tail(mydata)

Функция View () показывает наш датафрейм в виде таблицы.

View(mydata)

Чтобы посмотреть из чего состоит наш датафрейм, то есть посмотреть какие переменные, какие у них типы данных, используется функция str (). Если нужно вспомнить только названия содержащихся переменных, то можно воспользоваться функцией names ().

str(mydata)

names(mydata)

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

b <- mydata$score mean(mydata$score) mydata$score * 2

mydata$ten_point_scale <- mydata$score * 2 mydata$new_varible <- 0

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

nrow(mydata)

ncol(mydata)

mydata$number <- 1:nrow(mydata)

Естественно, что при анализе данных нам необходимо разбивать датафрейм на какие-то более мелкие части. Чтобы понять как это делать, рассмотрим то, как компьютер видит наш датафрейм.

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

 

Столбец

Столбец

Столбец

Столбец

Столбец

 

1

2

3

4

5

 

 

 

 

 

 

1

1

2

3

4

5

 

 

 

 

 

 

2

6

7

8

9

10

 

 

 

 

 

 

3

11

12

13

14

15

 

 

 

 

 

 

4

16

17

18

19

20

 

 

 

 

 

 

 

Столбец

Столбец

Столбец

Столбец

Столбец

 

1

2

3

4

5

 

 

 

 

 

 

1

11

12

13

14

15

 

 

 

 

 

 

2

21

22

23

24

25

 

 

 

 

 

 

3

31

32

33

34

35

 

 

 

 

 

 

4

41

42

43

44

45

 

 

 

 

 

 

Как можно видеть, значению в первой ячейке соответствует номер позиции [1,1], второй - [1,2] и так далее. То есть, если проводить аналогию с другими языками программирования, датафреймы по сути двумерные массивы. Если не указать одно из позиций индекса, то выведется или весь столбец, или вся строка.

Естественно в качестве значения позиции можно использовать вектор значений.

mydata[1,1]

mydata[c(2,193,225),1]

mydata[101:200,1]

mydata[5,]

mydata[,1] == mydata$score

mydata[,2:5]

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

mydata$gender mydata$gender == 'female'

mydata[mydata$gender == 'female',1:3])

Но существует способ вывода значений с использованием какого-то условия без использования индексации. В функции subset () указывается название датафрейма и условие по которому будут отобраны значения.

subset(mydata, gender == 'female')) subset(mydata, score > 3.5))

В ходе исследований может возникнуть такая ситуация, когда результаты исследований записаны в разных файлах. Чтобы объединить датафреймы существуют функции rbind () и cbind ().

Соседние файлы в папке R Language лабы (Сковорцов)