R

Материал из Поле цифровой дидактики
Краткое описание языка 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, CSV, Data in Education Seminar/28 02 2024, Interactive web-based data visualization with R, plotly, and shiny, Learn ggplot2 using Shiny App, MariaMyshkina, Mastering Shiny: Build Interactive Apps, Reports, and Dashboards Powered by R, Outstanding User Interfaces with Shiny, Patarakin, R for Data Science, Tidy Modeling with R, Wickham, Алгоритмы и структуры данных (syllabus), Анализ данных, Анализ социальных сетей/Ключевые понятия, Аналитика, Аналитика мультимодальная, Аналитика учебная, Библиографический анализ области знаний, Библиометрические исследования, Биграф, Биология, Большие данные, Вектор, Временная сложность алгоритма, Вычислительное мышление, Генетика, Гигантская компонента, Гистограмма, Граф, Датасет, Как собрать своё первое приложение Shinу, Кластеризация, Клика, Массив, Машинное обучение, Множественная регрессия, Наука о данных, Наука о сетях, Незримый колледж МЭШ, Нейроэволюция, Обработка больших данных (syllabus), Описать датасет при помощи описательной статистики, Плотность, Построение сетевых сообществ, Программирование на языках высокого уровня, Программный код, Проектирование и разработка приложений (syllabus), Процедура, Регрессионный анализ… следующие результаты


Книги про R
 InventorDescription
APIs for social scientists: A collaborative reviewВ книге представлено множество API социальных сетей и основы их использования. В статье по этой книге собраны примеры API и особенности работы с ними. Код а книге - R
Interactive web-based data visualization with R, plotly, and shinyКнига по разработке приложений в веб среде на основе языка 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
Learn ggplot2 using Shiny AppСетевая книга по освоению приемов работы с пакетом ggplot2 языка R в среде Shiny
Mastering Shiny: Build Interactive Apps, Reports, and Dashboards Powered by RWickhamКнига о создании аналитических веб-приложений на языке R в среде Shiny
Outstanding User Interfaces with ShinyGranjonA book about deeply customizing Shiny app for production.
R for Data ScienceWickhamПодробное руководство по использованию языка R для обработки, модификации, визуализации и программировании данных
Tidy Modeling with RSigleРуководство по созданию и использованию моделей при помощи пакетов из пространства tidyverse: recipes, parsnip, workflows, yardstick, and others.
Незримый колледж МЭШ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()

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

igraph

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

tidyverse

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


tidygraph

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

http://docu.openrepgrid.org/s


R + Gephi


Shiny