R: различия между версиями

Материал из Поле цифровой дидактики
Нет описания правки
Нет описания правки
 
(не показано 7 промежуточных версий этого же участника)
Строка 2: Строка 2:
|Description=R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU. Используется для обработки, анализа и визуализации данных
|Description=R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU. Используется для обработки, анализа и визуализации данных
|FieldActivity=Knowledge Constructor, Computational Thinker, Creative Communicator
|FieldActivity=Knowledge Constructor, Computational Thinker, Creative Communicator
|Programming paradigm=Функциональное программирование
|Возрастная категория=16
|Возрастная категория=16
|Dimension=2D
|Dimension=2D
Строка 8: Строка 9:
|Openness=Открытый
|Openness=Открытый
|Address=https://www.r-project.org/
|Address=https://www.r-project.org/
|Ancestors=Scheme
|Ancestors=Scheme, S
|Descendants=Julia
|Descendants=Julia
|ActiveNow=Project is active
|ActiveNow=Project is active
|Remixing=Да
|Remixing=Да
|launch year=1993
|launch year=1993
|Inventor=Айхэка
|ForMobileApps=Нет
|ForMobileApps=Нет
|Ages=16, 17, 25
|Ages=16, 17, 25
Строка 19: Строка 21:
|Сreators=Айхэка
|Сreators=Айхэка
}}
}}
; Книги про R
{{#ask: [[Category:Book]] [[Environment::R]] | ?Inventor | ?Description}}


R — язык программирования для статистической обработки данных и работы с графикой. [[язык высокого уровня|Высокоуровневый язык]], ориентированный на решение задач по манипуляции с данными и обладающий широким набором проверенных библиотек (пакетов)
R — язык программирования для статистической обработки данных и работы с графикой. [[язык высокого уровня|Высокоуровневый язык]], ориентированный на решение задач по манипуляции с данными и обладающий широким набором проверенных библиотек (пакетов). R — интерпретируемый язык программирования, основным способом работы с которым является командный интерпретатор. Язык является регистрозависимым, в плане синтаксиса он похож, с одной стороны, на функциональные языки типа [[Scheme]], с другой — на типичные современные сценарные языки, с простым синтаксисом и небольшим набором основных конструкций. [[Язык объектный]]: любой программный объект в нём имеет набор атрибутов — именованный список значений, определяющих его.


Используется для анализа данных наряду с [[NetLogo]], [[graphviz]], [[VUE]], [[Gephi]], [[VOSviewer]]
Используется для анализа данных наряду с [[NetLogo]], [[graphviz]], [[VUE]], [[Gephi]], [[VOSviewer]]
https://www.youtube.com/watch?v=uhCVcZ0p0b8


== Базовые возможности ==
== Базовые возможности ==
Язык поддерживает минимальный набор примитивных типов данных: символьный (character), числовой (numeric), логический (logical) и комплексный (complex). Числовые переменные, помимо обычных чисел, могут принимать специальные значения NaN (Not a Number — «не число») и Inf (Infinity — «бесконечность»).  
Язык поддерживает минимальный набор примитивных типов данных: символьный (character), числовой (numeric), логический (logical) и комплексный (complex). Числовые переменные, помимо обычных чисел, могут принимать специальные значения NaN (Not a Number — «не число») и Inf (Infinity — «бесконечность»).


== Типы данных ==
== Типы данных ==
Строка 138: Строка 144:


Пакет упрощающий работу с данными.
Пакет упрощающий работу с данными.
Книги по Tidyverse
# Hadley Wickham and Garrett Grolemund - '''R for Data Science Import, Tidy, Transform, Visualize, and Model Data''' 2017
#




Строка 162: Строка 164:
----
----


==== Shiny ====
{{#widget:iframe
|url=https://vnijs.shinyapps.io/radiant/
|width=800
|height=600
}}


[[Категория:Язык программирования]]
[[Категория:Язык программирования]]

Текущая версия от 07:28, 14 октября 2023


Краткое описание языка R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU. Используется для обработки, анализа и визуализации данных
Компетенции в каких сферах формирует Knowledge Constructor, Computational Thinker, Creative Communicator
Парадигмы программирования Функциональное программирование
Возрастная категория 16
Назначение языка (Общее / Учебное) Специальный прикладной язык
Visual_Text_Blocks Текст
Измерение (2D/3D/Tangible) 2D
Область знаний
Открытость продукта Открытый
Address https://www.r-project.org/
Предки (Ancestors) Scheme, S
Потомки (Descendants) Julia
Активность в данный момент Project is active
Доступны ремиксы? Да
Год создания 1993
Создатели Айхэка
Поясняющее видео
Используется для создания мобильных приложений? Нет


R упоминается в свойствах следующих страниц
APIs for social scientists: A collaborative review, Artomchik mgpuev, Big Data with R, CSV, Causal Inference, Causal Inference in R, Complex network analysis, Daria Mukomolova, Data in Education Seminar/28 02 2024, Economic Disparity, Egorovsn051, Individual-Based Models of Cultural Evolution: A Step-by-Step Guide Using R, Interactive web-based data visualization with R, plotly, and shiny, Introduction to Econometrics with R, Introductory Statistics for Economics, Kalinina, Learn ggplot2 using Shiny App, Learning analytics methods and tutorials: A practical guide using R, MariaMyshkina, Mastering Shiny: Build Interactive Apps, Reports, and Dashboards Powered by R, Modeling Social Behavior: Mathematical and Agent-Based Models of Social Dynamics and Cultural Evolution, Outstanding User Interfaces with Shiny, Patarakin, R for Data Science, Smaldino, TF-IDF, Text Mining with R, Tidy Modeling with R, VOMAS, Virus on a Network, Wickham, Автокорреляция, Алгоритмы и структуры данных (syllabus), Анализ данных, Анализ социальных сетей/Ключевые понятия, Анализ тональности текста, Аналитика, Аналитика мультимодальная, Аналитика учебная, Библиографический анализ области знаний, Библиометрические исследования, Биграф, Биология, Большие данные, Вектор, Воспроизводимость, Временная сложность алгоритма, Выборка, Вычислительное мышление, Генеральная совокупность… следующие результаты


Книги про R
 InventorDescription
APIs for social scientists: A collaborative reviewВ книге представлено множество API социальных сетей и основы их использования. В статье по этой книге собраны примеры API и особенности работы с ними. Код а книге - R
Big Data with RDesjardinsExploring, Visualizing, and Modeling Big Data with R
  • В образовании имеется огромное количество данных — от записей о студентах и наблюдений преподавателей до результатов тестов. Современные технологии, такие как распознавание лиц и биометрические сигналы, расширяют доступ к визуальной и аудиоинформации о студентах. Мультимодальная аналитика в образовательном тестировании и психометрике позволяет точнее оценивать знания учащихся, одновременно отслеживая их прогресс с помощью аналитики обучения. Анализ логов и времени реакции помогает понять уровень вовлеченности студентов, выявить списывание и наличие предварительных знаний по тестовым заданиям.
Causal Inference in RBarrettWelcome to Causal Inference in R. Answering causal questions is critical for scientific and business purposes, but techniques like randomized clinical trials and A/B testing are not always practical or successful. The tools in this book will allow readers to better make causal inferences with observational data with the R programming language. By its end, we hope to help you:
  1. Ask better causal questions.
  2. Understand the assumptions needed for causal inference
  3. Identify the target population for which you want to make inferences
  4. Fit causal models and check their problems
  5. Conduct sensitivity analyses where the techniques we use might be imperfect
Individual-Based Models of Cultural Evolution: A Step-by-Step Guide Using RAcerbiКнига показывает как создавать агентно-ориентированные модели или ABM культурной эволюции. В тексте книги используется код на языке программирования R. От очень простых моделей основных процессов культурной эволюции, таких как предвзятая передача и культурная мутация, к более сложным темам, таким как эволюция социального обучения, демографические эффекты и анализ социальных сетей.
Interactive web-based data visualization with R, plotly, and shinySievertКнига по разработке приложений в веб среде на основе языка R + Plotly + Shiny It makes heavy use of plotly for rendering graphics, but you’ll also learn about other R packages that augment a data science workflow, such as the tidyverse and shiny
Introduction to Econometrics with RHanckВведение в эконометрику с R - учебник по эконометрике с использованием языка R - еще на стадии совместного редактирования
Introductory Statistics for EconomicsKrauthКнига "Introductory Statistics for Economics" предназначена для знакомства студентов с базовыми статистическими методами и их применением в экономике. Учебник содержит большое количество практических примеров и упражнений на языке программирования R, что формирует основные навыки данных и статистического анализа. Эти навыки отлично совмещаются с агентным моделированием в NetLogo, ведь полученные инструменты анализа данных и программирования применимы для анализа результатов симуляций и их визуализации.
Learn ggplot2 using Shiny AppСетевая книга по освоению приемов работы с пакетом ggplot2 языка R в среде Shiny
Learning analytics methods and tutorials: A practical guide using RMohammed Saqr, López-PernasМетоды учебной аналитики с использованием языка R - открытое руководство с многочисленными примерами и ссылками на образовательные датасеты
Mastering Shiny: Build Interactive Apps, Reports, and Dashboards Powered by RWickhamКнига о создании аналитических веб-приложений на языке R в среде Shiny
Modeling Social Behavior: Mathematical and Agent-Based Models of Social Dynamics and Cultural EvolutionSmaldinoСоциальные, поведенческие и когнитивные науки исторически полагались на силу слова. Слова имеют силу. Богатые аналогии могут найти отклик в умах читателей и пролить свет на тайны природы. Я говорю о вербальных теориях, описательных объяснениях сложных явлений. Большинство теорий, вероятно, более точны, чем поэтичны, но они, как правило, опираются на свойство большинства языков, согласно которому фраз могут нести в себе несколько возможных импликатур — рассмотрим, например, такие слова, как «восприятие», «категория», «идентичность», «тождественность» обучение» и даже «реакция» достаточно двусмысленны, чтобы допускать множество интерпретаций. То есть язык по своей сути (и адаптивно) расплывчат и двусмыслен. В конечном счете, это проблема для ученых, потому что нам нужно предельно четко понимать, о чем мы говорим, чтобы выдвинуть полезные теории Вселенной.
Outstanding User Interfaces with ShinyGranjonA book about deeply customizing Shiny app for production.
R for Data ScienceWickhamПодробное руководство по использованию языка R для обработки, модификации, визуализации и программировании данных
Text Mining with RКнига даёт завершённую картину современных аналитических подходов к тексту, систематизируя инструменты R и методику работы с данными на всех этапах анализа.
Tidy Modeling with RSigleРуководство по созданию и использованию моделей при помощи пакетов из пространства tidyverse: recipes, parsnip, workflows, yardstick, and others.
Классификация, регрессия и другие алгоритмы Data Mining с использованием RШитиков, МастицкийОписана широкая совокупность методов построения статистических моделей классификации и регрессии для откликов, измеренных в альтернативной, категориальной и метрической шкалах. Подробно рассматриваются деревья решений, машины опорных векторов с различными разделяющими поверхностями, нелинейные формы дискриминантного анализа, искусственные нейронные сети и т.д.
Незримый колледж МЭШPatarakinСтатья, в которой понятие незримого колледжа применяется к сообществу учителей, сотрудничающих внутри репозитория московской электронной школы.

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

Используется для анализа данных наряду с NetLogo, graphviz, VUE, Gephi, VOSviewer

https://www.youtube.com/watch?v=uhCVcZ0p0b8

Базовые возможности

Язык поддерживает минимальный набор примитивных типов данных: символьный (character), числовой (numeric), логический (logical) и комплексный (complex). Числовые переменные, помимо обычных чисел, могут принимать специальные значения NaN (Not a Number — «не число») и Inf (Infinity — «бесконечность»).

Типы данных

Значения примитивных типов могут объединяться в векторы (vector), списки (list), матрицы или массивы (matrix), в том числе многомерные; эти комбинированные типы хранят наборы данных одного и того же примитивного типа. Помимо этого язык содержит понятие факторов (factor) — наборов категориальных или шкальных данных, принимающих строго определённый набор значений. Наконец, могут создаваться таблицы (data frame) — структуры данных, которые для каждой строки (индивида) хранят набор различных (и имеющих разные типы) параметров (признаков). Особенностью R является то, что операции с векторами и матрицами поддерживаются на уровне самого языка, как, например, в APL.


Векторы

Векторы (vector) – это одномерные массивы данных, которые могут содержать числовые, текстовые или логические значения. Для создания вектора применяется функция объединения c(). Вот примеры векторов каждого типа:

 a <- c(1, 2, 5, 3, 6, -2, 4)
 b <- c(one, two, three)
c <- c(TRUE, TRUE, TRUE, FALSE)

Матрицы

Матрица (matrix) – это двумерный массив данных, в котором каждый элемент имеет одинаковый тип (числовой, текстовый или логический). Вы можете обозначать строки, столбцы и элементы матрицы при помощи индексов и квадратных скобок. Например, X[i,] обозначает i-ую строку матрицы X, X[,j] – обозначает ее j-ый столбец, а X[i, j] соответствует элементу этой матрицы, расположенному на пересечении этой строки и этого столбца.

См. Матрица смежности

Массивы

Массивы данных (array) сходны с матрицами, но могут иметь больше двух измерений.

Таблицы

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

Факторы

Категориальные (номинальные и порядковые) данные называются в R факторами.

Например, есть вектор diabetes <- c(“Type1”, “Type2”, “Type1”, “Type1”).

Команда diabetes <- factor(diabetes) преобразует этот вектор в (1, 2, 1, 1) и устанавливает внутреннее соответствие 1=Type1 и 2=Type2 (присвоение числовых значений происходит в алфавитном порядке).

Установку по умолчанию можно изменить при помощи параметра levels. Например,

status <- factor(status, order=TRUE, levels=c(Poor, Improved, Excellent))

Списки

Списки – это самый сложный тип данных в R. Фактически список – это упорядоченный набор объектов (компонентов).

Как загружать (импортировать данные в R)

data <- read.table(file.choose(),header=TRUE, sep=";", encoding="UTF-8")
x <- read.csv(file.choose(),header=TRUE, sep=";", encoding="UTF-8")

mydata <- read.csv(file.choose(),header=TRUE)

mydata <- read.csv(file.choose(),sep=";", as.is=T, header=TRUE)

library(tidyverse)

  • dt1 <- read_csv2("0303.csv") - считать таблицу

Как экспортировать данные из R ?

write.csv(x, file="filename", row.names=FALSE)

library(tidyverse)

  • write_csv (object "filename.csv")

Как обработать данные в R ?

Удалить ненужные столбцы, выбрать нужные значение по датам и т.д.

Выбрать только нужные столбцы newLD <- subset(letdata, select = c( -rev_user_text, -page_title))

  • newLD <- subset(letdata, select = c( rev_user_text, page_title)) - если именно их хотим оставить

LT2 <- data.frame(User = letdata[,4], Page = letdata[,3])

Отсортировать по времени

  • sort1.let <- newLD[order(NewLD$rev_timestamp), ]
    • Например, сортируем историю летописи lhist2 <- lhist[order(lhist$rev_timestamp),]

Выбрать уникальные значения ubi2 <- data.frame(User = ubi[,2], Page = ubi[,3])

  • users <- unique(ubi2[,1])
  • pages <- unique(ubi2[,2])
  • users2006 <- unique(lhist.sub2006[,2])  ;

А теперь посчитать сколько в списке участников

Выбрать только тех, у кого есть все значения
newdata <- na.omit(lhist )


Как выбрать тех, у кого значение соответствует указанному - Например, 2006

grep(pattern = "2006", lethist, value = TRUE)

subset(x, ...) — возвращает подмножество элемента, которое соответствует заданному условию

Диаграммы

dev.new()
plot()

Специальные пакеты

Пакет для работы с графами - создание и визуализация графов

Пакет упрощающий работу с данными.


Пакет для обработки решеток Келли - OpenRepGrid

http://docu.openrepgrid.org/s


R + Gephi


Shiny