Манипулирование данными в R презентация

Содержание


Презентации» Информатика» Манипулирование данными в R
Манипулирование данными  в RСортировка. Функция order
 Упорядочение лучше производить косвенно: найти вектор индексов, наПример
 > x <- sample(1:5, 20, rep=T)
 > y <- sample(1:5,Функция sort
 Функция sort сортирует вектор или список в возрастающем илиФункция rank
 Чтобы вывести ранг значений вектора, используется функция rank. ПоДата и время
 В R есть несколько механизмов для представления датыКонверсия из одной формы в другую
 Функция as.POSIXlt(obj) преобразует из POSIXctПримеры 
 В какой день недели вы родились и сколько днейАрифметические действия с объектами POSIXt
 Допускаются следующие арифметические действия с объектамиТаблицы
 Иногда удобно табулировать данные (представлять в виде таблиц частот). ЭтоSplit
 Функция split делит данные, заданные вектором x, на группы, определенныеГрафикиФункции with, subset and transform 
 Эти функции производят операции надВекторизованные вычисления
 R позволяет выполнять вычисления над целыми векторами/матрицами/блоками данных/списками вместоФункция apply
 Эта функция позволяет оперировать последовательными частями массива. Для иллюстрацииФункция tapply
 Неровные массивы представляют собой комбинацию вектора и фактора метокФункции lapply и sapply
 lapply и sapply оперируют с компонентами спискаИмпорт и экспорт данныхЧтение данных в R
 scan() - низкоуровневое средство чтения
 read.table() -Низкоуровневая функция ввода scan()
 Для чтения численных данных
 > vec <-scan() для чтения смешанных данных
 > lis <- scan(what = list(flagИмпорт прямоугольных таблиц read.table()
 Эта функция позволяет определять аргумент заголовка, разделители,Пример
 > samp1 <- read.csv("samp1.csv")
 > samp1[1:3,]
 ID Name Prob
 1Импорт формата с фиксированной шириной read.fwf()
 Формат с фиксированной шириной необыченПример
 > dat.ff <- tempfile()
 > cat(file=dat.ff,"12345678","abcdefgh",sep="\n")
 > read.fwf(dat.ff,width=c(2,4,1,1))
 V1 V2Редактирование данных
 Функции edit и fix позволяют менять файлы данных. ЭтоИмпорт бинарных файлов
 Бинарные файлы, записанные в других статистических пакетах, могутЧтение больших файлов данных
 Есть ограничения на типы файлов, которые RПакет RODBC
 RODBC позволяет связаться с БД и доставить информацию. ВажныеВывод данных из R
 Функция cat является базовой для экспорта данных.Функция cat
 Этой функцией очень удобно пользоваться для печати на экране
Функция sink
 Может использоваться для записи объектов и текста в файл.
Функция write.table
 Пример 1. Создание соединения перед записью
 > con <-Вывод графики из R
 Есть 4 способа для экспорта графики изВывод графики из R
 2. Более простой, но менее гибкий способ



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Манипулирование данными в R


Слайд 2
Описание слайда:
Сортировка. Функция order Упорядочение лучше производить косвенно: найти вектор индексов, на котором выполнять операцию сортировки, и использовать его для всех векторов, которые должны изучаться в совокупности. Функция order позволяет сортировать в порядке следования аргументов – первый аргумент - вектор индексов, который сортируется в порядке возрастания, затем сортировка производится по второму аргументу и т.д.

Слайд 3
Описание слайда:
Пример > x <- sample(1:5, 20, rep=T) > y <- sample(1:5, 20, rep=T) > z <- sample(1:5, 20, rep=T) > xyz <- rbind(x, y, z) > dimnames(xyz)[[2]] <- letters[1:20] > xyz a b c d e f g h i j k l m n o p q r s t x 4 4 2 4 3 4 4 1 2 2 5 3 1 5 5 3 4 5 3 4 y 5 5 2 5 2 3 5 4 4 2 4 2 1 4 3 4 4 2 2 2 z 4 5 3 2 4 2 4 5 5 2 4 2 4 5 3 4 3 4 4 3 > o <- order(x, y, z) > xyz[, o] m h j c i l e s p t f q d a g b r o k n x 1 1 2 2 2 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 y 1 4 2 2 4 2 2 2 4 2 3 4 5 5 5 5 2 3 4 4 z 4 5 2 3 5 2 4 4 4 3 2 3 2 4 4 5 4 3 4 5

Слайд 4
Описание слайда:
Функция sort Функция sort сортирует вектор или список в возрастающем или убывающем > sort(x) [1] 1 1 2 2 2 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 > sort(x,decreasing=T) [1] 5 5 5 5 4 4 4 4 4 4 4 3 3 3 3 2 2 2 1 1 Чтобы отсортировать часть вектора, используется аргумент the partial > sort(x,partial=c(3,4)) [1] 1 1 2 2 3 4 4 4 2 4 5 3 4 5 5 3 4 5 3 4

Слайд 5
Описание слайда:
Функция rank Чтобы вывести ранг значений вектора, используется функция rank. По умолчанию ранг одинаковых элементов усредняется, но можно использовать другие опции: брать первое значение, случайное значение, максимум или минимум. x 4 4 2 4 3 4 4 1 2 2 5 3 1 5 5 3 4 5 3 4 > rank(x) [1] 13.0 13.0 4.0 13.0 7.5 13.0 13.0 1.5 4.0 4.0 [11] 18.5 7.5 1.5 18.5 18.5 7.5 13.0 18.5 7.5 13.0 > rank(x, ties="first") # first occurrence wins [1] 4 4 2 4 3 4 4 1 2 2 5 3 1 5 5 3 4 5 3 4 > rank(x, ties="random") # ties broken at random [1] 16 15 5 14 9 12 11 1 3 4 19 6 2 17 18 8 13 20 7 10 > rank(x, ties="min") # typical sports ranking [1] 10 10 3 10 6 10 10 1 3 3 17 6 1 17 17 6 10 17 6 10

Слайд 6
Описание слайда:
Дата и время В R есть несколько механизмов для представления даты и времени. Стандартный - это набор функций и объектов POSIXct/POSIXlt . POSIXct - это численные векторы, каждая компонента которых представляет число секунд с начала 1970 года. Такие объекты подходят для включения в блоки данных. Объекты POSIXlt – это списки, в которых части даты/времени хранятся как отдельные компоненты.

Слайд 7
Описание слайда:
Конверсия из одной формы в другую Функция as.POSIXlt(obj) преобразует из POSIXct в POSIXlt. Функция as.POSIXct(obj) преобразует из POSIXlt в POSIXct. Функция strptime(char,form) генерирует объекты POSIXlt из подходящих строковых векторов, где формат должен быть определен. Функция format(obj,form) генерирует символьные векторы из объектов POSIXlt или POSIXct, также требуется определение формата. Функция as.character(obj) aтакже генерирует символьные строковые векторы как и format(,), но только в формате даты/времени стандарта ISO standard time/date.

Слайд 8
Описание слайда:
Примеры В какой день недели вы родились и сколько дней вы прожили? > myBday <- strptime("18-Apr-1973", "%d-%b-%Y") > class(myBday) [1] "POSIXt" "POSIXlt" > myBday [1] "1973-04-18" > weekdays(myBday) [1] “Wednesday” >Sys.time() [1] "2005-01-19 12:08:12 E. Australia Standard Time“ >Sys.time() – myBday Time difference of 11599.51 days

Слайд 9
Описание слайда:
Арифметические действия с объектами POSIXt Допускаются следующие арифметические действия с объектами дата/время (POSIXlt или POSIXct): • obj + number • obj - number • obj1 <lop> obj2 • obj1 - obj2 В первых двух случаях number представляет собой число секунд. Если нужно добавить или вычесть дни, работают с произведениями вида 60*60*24. В третьем случае <lop> это логический оператор, а результат – логический вектор. В четвертом случае результат – это объект difftime, представляющий собой разницу времен в секундах. > as.numeric(Sys.time()) [1] 1106100492 > as.numeric(myBday) [1] 0001837331070 >as.numeric(as.POSIXct(myBday)) [1] 103903200 >as.numeric(Sys.time()) - as.numeric(as.POSIXct(myBday)) [1] 100219729

Слайд 10
Описание слайда:
Таблицы Иногда удобно табулировать данные (представлять в виде таблиц частот). Это можно сделать с помощью функции table в R. Набор данных quine состоит из 146 строк, описывающих этническую принадлежность (Eth), возраст (Age), пол (Sex), количество пропусков в школе (Days) и их способность к учебе (Lrn). Eth, Sex, Age и Lrn это категориальные переменные, Days – численный вектор. Если мы хотим классифицировать объекты по возрасту, можно сделать следующее: > attach(quine) > table(Age) > Age Age F0 F1 F2 F3 27 46 40 33 Если мы хотим узнать распределение по возрасту в соответствии с полом: > table(Sex,Age) Age Sex F0 F1 F2 F3 F 10 32 19 19 M 17 14 21 14

Слайд 11
Описание слайда:
Split Функция split делит данные, заданные вектором x, на группы, определенные фактором f. Эта функция может быть полезной для графического изображения данных. Если мы хотим получить описание разбиения Days по Sex, можно написать следующий код > split(Days,Sex) $F [1] 3 5 11 24 45 5 6 6 9 13 23 25 32 53 54 5 5 11 17 19 8 13 14 20 47 [26] 48 60 81 2 0 2 3 5 10 14 21 36 40 25 10 11 20 33 5 7 0 1 5 5 5 [51] 5 7 11 15 5 14 6 6 7 28 0 5 14 2 2 3 8 10 12 1 1 9 22 3 3 [76] 5 15 18 22 37 $M [1] 2 11 14 5 5 13 20 22 6 6 15 7 14 6 32 53 57 14 16 16 17 40 43 46 8 [26] 23 23 28 34 36 38 6 17 67 0 0 2 7 11 12 0 0 5 5 5 11 17 3 4 22 [51] 30 36 8 0 1 5 7 16 27 0 30 10 14 27 41 69 Или графически > boxplot(split(Days,Sex),ylab="Days Absent") > library(lattice) # trellis graphics > trellis.par.set(col.whitebg()) > bwplot(Days ˜ Age | Sex) # implicit split

Слайд 12
Описание слайда:
Графики

Слайд 13
Описание слайда:
Функции with, subset and transform Эти функции производят операции над объектом или над элементами внутри объекта. Не нужно подключение (attachment) набора данных. These functions operate on an object or elements within an object. • with: выполняет выражения, содержащие данные > with(Cars93,plot(Weight,100/MPG.highway)) • subset: возвращает подмножества векторов или блоков данных, удовлетворяющих определенным требованиям > Vans <- subset(Cars93,Type=="Van") • transform: преобразует элементы объекта > Cars93T <- transform(Cars93,WeightT=Weight/1000)

Слайд 14
Описание слайда:
Векторизованные вычисления R позволяет выполнять вычисления над целыми векторами/матрицами/блоками данных/списками вместо их отдельных элементов. Четыре функции: lapply, sapply, tapply, apply • lapply: берет структуру, дает список результатов • sapply: как lapply, но упрощает результат, если это возможно • apply: используется только для массивов • tapply: используется для неровных (ragged) массивов: векторов, которые индексируются одним или несколькими факторами. Эти функции используются для эффективности и удобства.

Слайд 15
Описание слайда:
Функция apply Эта функция позволяет оперировать последовательными частями массива. Для иллюстрации вычислим среднее каждого столбца набора данных iris: > iris[1:4,] Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa > apply(iris[,-5],2,mean) Sepal.Length Sepal.Width Petal.Length Petal.Width 5.843333 3.057333 3.758000 1.199333

Слайд 16
Описание слайда:
Функция tapply Неровные массивы представляют собой комбинацию вектора и фактора меток групп, где размеры групп неправильные (irregular). Чтобы применять функции к неровным массивам, применяется tapply, в качестве аргументов которой подставляются объект, список факторов и функция. Проиллюстрируем ее работу на наборе данных quine. > quine[1:5,] Eth Sex Age Lrn Days 1 A M F0 SL 2 2 A M F0 SL 11 3 A M F0 SL 14 4 A M F0 AL 5 A M F0 AL 5 Чтобы вычислить среднее число пропусков для каждого возраста, можно использовать функцию tapply. > tapply(Days,Age,mean) F0 F1 F2 F3 14.85185 11.15217 21.05000 19.60606 Чтобы выполнить такие вычисления для классов Пол и Возраст, нужно использовать два фактора Sex и Age и функцию list >tapply(Days,list(Sex,Age),mean) F0 F1 F2 F3 F 18.70000 12.96875 18.42105 14.00000 M 12.58824 7.00000 23.42857 27.21429

Слайд 17
Описание слайда:
Функции lapply и sapply lapply и sapply оперируют с компонентами списка или вектора lapply всегда возвращает список list sapply более user-friendly чем lappy, пытается упрощать результат в виде вектора или массива

Слайд 18
Описание слайда:
Импорт и экспорт данных

Слайд 19
Описание слайда:
Чтение данных в R scan() - низкоуровневое средство чтения read.table() - для чтения блоков данных из форматированных текстовых файлов read.fwf() - для чтения файлов данных фиксированной ширины read.csv() - для чтения блоков данных из файлов с разделенными запятыми переменными При чтении данных из файлов Excel самый простой метода – сохранение каждого рабочего листа (worksheet ) отдельно в виде csv-файла и использование функции read.csv() для каждого из них Наилучший способ для прямой связи с файлом Excel – это использование odbc

Слайд 20
Описание слайда:
Низкоуровневая функция ввода scan() Для чтения численных данных > vec <- scan() 1: 22 35 1.7 2.5e+01 77 6: Прочитано 5 элементов > vec [1] 22.0 35.0 1.7 25.0 77.0 Два «ввода» обозначают конец чтения данных

Слайд 21
Описание слайда:
scan() для чтения смешанных данных > lis <- scan(what = list(flag = "", x = 0, y = 0)) 1: a 10 3.6 2: a 20 2.4 3: a 30 1.2 4: b 10 5.4 5: b 20 3.7 6: b 30 2.4 7: Прочитано 6 записей > dat <- as.data.frame(lis) > dat flag x y 1 a 10 3.6 2 a 20 2.4 3 a 30 1.2 4 b 10 5.4 5 b 20 3.7 6 b 30 2.4

Слайд 22
Описание слайда:
Импорт прямоугольных таблиц read.table() Эта функция позволяет определять аргумент заголовка, разделители, способ работы с пропущенными значениями и незаполненными или пустыми строками. Эта функция подходит для наборов данных среднего размера, но не подходит для больших численных матриц. Функции read.csv или read.delim также могут использоваться для чтения прямоугольных файлов с разделителями запятыми. Более того, функция read.csv часто является лучшим выбором для чтения разделенных запятыми текстовых файлов, экспортированных из excel.

Слайд 23
Описание слайда:
Пример > samp1 <- read.csv("samp1.csv") > samp1[1:3,] ID Name Prob 1 1 a 0.812 2 2 b 0.982 3 3 c 0.725

Слайд 24
Описание слайда:
Импорт формата с фиксированной шириной read.fwf() Формат с фиксированной шириной необычен для большинства наборов данных. Обычно они разделены табуляцией или запятыми. Для данного типа формата наряду с разделителем необходимо определить вектор ширины. Функция read.fwfwrite записывает временных файл, разделенный табуляцией, а затем вызывает read.table. Эта функция полезна только для маленьких файлов данных.

Слайд 25
Описание слайда:
Пример > dat.ff <- tempfile() > cat(file=dat.ff,"12345678","abcdefgh",sep="\n") > read.fwf(dat.ff,width=c(2,4,1,1)) V1 V2 V3 V4 1 12 3456 7 8 2 ab cdef g h > unlink(dat.ff) # clean up afterwards

Слайд 26
Описание слайда:
Редактирование данных Функции edit и fix позволяют менять файлы данных. Это удобно для маленьких наборов данных и для получения моментального снимка данных на экране. Функция fix позволяет делать изменения, и затем присваивает измененную версию рабочему пространству. > fix(samp1) Функция edit вызывает текстовый редактор для объекта, результат изменений – это копия, которая может быть записана в новый объект. > samp1.new <- edit(samp1)

Слайд 27
Описание слайда:
Импорт бинарных файлов Бинарные файлы, записанные в других статистических пакетах, могут быть прочитаны в R. Пакет R foreign обеспечивает средства импорта из бинарных файлов EpiInfo, Minitab, S-Plus, SAS, SPSS, Stat and Systat. read.epiinfo() - чтение из текстовых файлов EpiInfo read.mtp() – импорт рабочих листов Minitab read.xport() – чтение файлов SAS в формате TRANSPORT read.S() – чтение бинарных объектов, созданных в S-PLUS read.spss() – чтение файлов из SPSS, созданных командами save и export read.dta() читает бинарные файлы Stata read.systat() читает прямоугольные файлы, сохраненные в Systat

Слайд 28
Описание слайда:

Слайд 29
Описание слайда:
Чтение больших файлов данных Есть ограничения на типы файлов, которые R может считывать. Большие файлы с данными могут вызывать проблемы, т.к. R хранит объекты и наборы данных в памяти. Поэтому во время выполнения функции могут храниться несколько копий набора данных. Объекты > 100Mb могут вызывать переполнение памяти. СУБД лучше подходят для извлечения и обобщения данных. ODBC позволяет получать доступ к данным из различных СУБД. Существует несколько пакетов, обеспечивающих разный уровень функциональности: копирование, отбор данных, запросы и доставка. В основном эти пакеты работают с реляционными БД. RODBC это пакет для работы с Microsoft SQL Server, Access, MySQL (Windows), Oracle, Excel, Dbase и текстовыми файлами. Возможно создание нескольких одновременных соединений путем RODBC.

Слайд 30
Описание слайда:
Пакет RODBC RODBC позволяет связаться с БД и доставить информацию. Важные функции RODBC включают Установку соединений с базами данных ODBC – odbcConnect, odbcConnectAccess, odbcConnectDbase, odbcConnectExcel Просмотр списка таблиц в базе данных ODBC – sqlTables Чтение таблицы из базы ODBC – sqlFetch Запросы к БД ODBC и доставка результатов – sqlQuery Библиотека RODBC позволяет выводить данные из нескольких листов Excel, но названия листов не должны содержать пробелов.

Слайд 31
Описание слайда:
Вывод данных из R Функция cat является базовой для экспорта данных. Она записывает объекты в файлы или печатает на экране. Функция sink также может использоваться для записи данных в файл. Функция print печатает объекты и возвращает их. Функция write записывает вектор или матрицу в файл с определенным числом столбцов. Для записи матриц или блоков данных рекомендуется использовать функцию write.table, но для очень больших матриц лучше использовать write.matrix (MASS library). Функция write.matrix может записывать матрицы по частям для сокращения объема памяти.

Слайд 32
Описание слайда:
Функция cat Этой функцией очень удобно пользоваться для печати на экране > cat("Hello World\n") Hello World Также можно записать текст в файл > cat("Hello World\n",file="output.txt“)

Слайд 33
Описание слайда:
Функция sink Может использоваться для записи объектов и текста в файл. > sink("output.txt") > sample(1:100,100,replace=T) > letters[1:10] > sink()

Слайд 34
Описание слайда:
Функция write.table Пример 1. Создание соединения перед записью > con <- file("myData.csv", "w+") > write.table(myData, con, sep = ",") > close(con) Пример 2. Запись данных напрямую > write.table(myData, "myData.txt")

Слайд 35
Описание слайда:
Вывод графики из R Есть 4 способа для экспорта графики из R. Функция postscript производит инкапсулированный postscript файл, содержащий рисунок Это гибкая функция, позволяющая настраивать размер и ориентацию рисунка Затем рисунок может быть встроен в документ LaTeX с помощью команды includegraphics > postscript("graph.ps",paper="a4") > hist(rnorm(10000)) > dev.off() null device 1 Другие похожие функции, доступные в R: windows, pdf, pictex, png, jpeg, bmp and xfig

Слайд 36
Описание слайда:
Вывод графики из R 2. Более простой, но менее гибкий способ – использование графического окна и сохранение путем File -> Save As. Опции: metafile, postscript, pdf, png, bitmap или jpeg 3. File -> Copy to the clipboard -> as Metafile. Этот способ хорошо подходит для вставки в Word, Excel и Powerpoint. 4. Прямая печать из R с помощью Print


Скачать презентацию на тему Манипулирование данными в R можно ниже:

Похожие презентации