LXF103:R
|
|
|
- R Свободный инструментарий для статистической обработки данных
Типы данных в R и работа с ними
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- ЧАСТЬ 3 Теперь, когда мы уже знаем достаточно для того, чтобы суметь загрузить данные в R, рассмотрим, что же происходит с ними внутри системы, и как, собственно, они обрабатываются.
В статистике, данные принято делить на различные типы, в зависимости от того, насколько близко их можно представить при помощи известной метафоры числовой прямой. Например, возраст человека легко выразить подобным образом, за тем исключением, что он не может быть отрицательным. Размер ботинок представить уже сложнее, поскольку между двумя соседним размерами, как правило, не бывает промежуточного значения, в то время как между двумя любыми числами на числовой прямой всегда можно найти нечто промежуточное. Зато размеры можно хотя бы расположить по возрастающей или по убывающей. А вот c полом человека так уже не получится: есть только два значения, и «промежуточного» просто не бывает. Мы, конечно, можем обозначить женский пол единицей, а мужской – нулем (или двойкой), но никакой числовой информации эти обозначения нести не будут – их даже нельзя отсортировать. Есть ещё и другие специальные виды данных, например, углы, географические координаты, даты и т.п., но все они так или иначе могут быть представлены с помощью чисел. Таким образом, наиболее принципиальное различие между типами данных – возможность или невозможность отобразить их на числа. Если этого сделать нельзя, такие данные принято называть категориальными. Статистические законы, а значит, и статистические программы, работают с этими данными, только если заранее указан их тип. Остальные типы данных в разных книгах называют по разному: числовые, счётные, порядковые или некатегориальные. Мы же примем название «числовые», как самое простое.
Числовые векторы
Допустим, у нас есть данные о росте семи сотрудников небольшой компании. Вот так можно создать из этих данных простейший вектор:
> x <- c(174, 162, 188, 192, 165, 168, 172)
x – это имя объекта R, <- – функция присвоения, c() – функция создания вектора (от англ. «concatenate», собрать). Собственно, R и работает, в основном, с объектами и функциями. У объекта может быть своя структура:
> str(x) num [1:7] 174 162 188 192 165 168 172
то есть x – это числовой (num, numerical) вектор. В других языках программирования бывают ещё скаляры, но в R, как мы знаем (LXF100/101), их нет. «Одиночные» объекты трактуются как векторы из одного элемента.
Вот так можно проверить, вектор ли перед нами:
> is.vector(x) [1] TRUE
Вообще говоря, в R есть множество функций вида is.что-то() для подобной проверки, а ещё есть функции вида as.что-то() – мы будем использовать их далее по тексту. Называть объекты можно, в принципе, как угодно, но лучше придерживаться некоторых простых правил:
- Использовать для названий только латинские буквы, цифры и точку (имена объектов не должны начинаться с точки или цифры);
- Помнить, что R чувствителен к регистру: X и x – это разные имена;
- Не давать объектам имена, уже занятые распространенными функциями (типа c()), а также ключевыми словами (особенно T, F, NA, NaN, Inf).
Для создания «искусственных» векторов очень полезен оператор :, а также функции seq() и rep().
Факторы
Для обозначения категориальных данных в R есть несколько способов, разной степени «правильности». Во-первых, можно создать текстовый (character) вектор:
> sex <- c( “male”, “female”, “male”, “male”, + “female”, “male”, “male”) > is.character(sex) [1] TRUE > is.vector(sex) [1] TRUE > str(sex) chr [1:7] “male” “female” “male” “male” “female” “male” ...
Предположим, что sex – это описание пола сотрудников небольшой организации. Вот как R выводит содержимое этого вектора (Да-да, квадратные скобки – это тоже команда. Можно это проверить, набрав помощь ?”[“):
> sex [1] “male” “female” “male” “male” “female” “male” “male”
Наверное, пора раскрыть загадку единицы в квадратных скобках – это просто номер элемента вектора. Вот как его можно использовать :
> sex[1] [1] “male”
«Умные», то есть объект-ориентированные команды R кое-что «понимают» про объект sex, например, команда table() выводит:
> table(sex) sex female male 2 5
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
А вот команда plot(), увы, не может сделать с таким вектором ничего вразумительного. И это, в общем-то, правильно, потому что программа ничего не знает про свойства пола человека. В таких случаях пользователь сам должен проинформировать R, что его надо рассматривать как категориальный тип данных. Делается это так:
> sex.f <- factor(sex) > sex.f [1] male female male male female male male Levels: female male
И теперь команда plot() уже понимает, что ей надо делать:
> plot(sex.f)
потому что «видит» специальный тип объекта, предназначенный для категориальных данных – фактор с двумя уровнями (levels):
> is.factor(sex.f) [1] TRUE > is.character(sex.f) [1] FALSE > str(sex.f) Factor w/ 2 levels “female”,“male”: 2 1 2 2 1 2 2
Очень многие функции R (тот же самый plot()) предпочитают факторы текстовым векторам. При этом некоторые умеют конвертировать текстовые векторы в факторы, а некоторые – нет, поэтому надо быть внимательным.
Есть ещё несколько важных свойств факторов, которые надо знать заранее. Во-первых, подмножество фактора – это фактор с тем же количеством уровней, даже если их в подмножестве не осталось:
> sex.f[5:6] [1] female male Levels: female male > sex.f[6:7] [1] male male Levels: female male
«Избавиться» от лишнего уровня можно, только применив специальный аргумент или выполнив преобразование данных «туда и обратно»:
> sex.f[6:7, drop=TRUE] [1] male male Levels: male > factor(as.character(sex.f[6:7])) [1] male male Levels: male
Во-вторых, факторы в отличие от текстовых векторов можно легко преобразовать в числовые значения:
> as.numeric(sex.f) [1] 2 1 2 2 1 2 2
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Зачем это нужно, становится понятным, если рассмотреть вот такой пример: положим, кроме роста, у нас есть ещё и данные по весу сотрудников и мы хотим построить такой график, на котором были бы видны одновременно рост, вес и пол. Вот как это можно сделать:
> # Вектор веса > w <- c(69, 68, 93, 87, 59, 82, 72) > # Построение графика > plot(x, w, pch=as.numeric(sex.f), col=as.numeric(sex.f)) > legend( “topleft”, pch=1:2, col=1:2, legend=levels(sex.f))
Тут, разумеется, нужно кое-что объяснить. pch и col – это параметры, предназначенные, соответственно, для определения типа значков и их цвета на графике. Таким образом, в зависимости от того, какому полу принадлежит данная точка, она будет изображена кружком или треугольником и чёрным или красным цветом. При условии, разумеется, что все три вектора соответствуют друг другу. Ещё надо отметить,