R (язык программирования)

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
(iGraph)
(Специальные пакеты)
 
(не показаны 29 промежуточных версий 1 участника)
Строка 1: Строка 1:
 +
{{Карточка языка программирования
 +
|Ages=16, 17, 18, 25
 +
|FieldActivity=Knowledge Constructor, Computational Thinker, Creative Communicator
 +
|Dimension=2D
 +
|Purpose=Специальный прикладной язык
 +
|Visual_Text_Blocks=Текст
 +
|Openness=Открытый
 +
|Address=https://www.r-project.org/
 +
|Ancestors=Scheme
 +
|Descendants=Julia
 +
|ActiveNow=Project is active
 +
|Remixing?=Yes
 +
}}
 
{{w|http://ru.wikipedia.org/wiki/R_(язык_программирования)|R (язык программирования)}}
 
{{w|http://ru.wikipedia.org/wiki/R_(язык_программирования)|R (язык программирования)}}
  
  
R — язык программирования для статистической обработки данных и работы с графикой. Используется в Летописи для внешнего анализа данных наряду с [[Netlogo]] и [[Графвиз]].
+
R — язык программирования для статистической обработки данных и работы с графикой. Используется в Летописи для внешнего анализа данных наряду с [[Netlogo]], [[Графвиз]], [[VUE]], [[Gephi]], [[VOSviewer]]
  
 
== Базовые возможности ==
 
== Базовые возможности ==
Строка 19: Строка 32:
 
=== Матрицы ===
 
=== Матрицы ===
 
[[Матрица]] (matrix) – это двумерный массив данных, в котором каждый элемент имеет одинаковый тип (числовой, текстовый или логический). Вы можете обозначать строки, столбцы и элементы матрицы при помощи индексов и квадратных скобок. Например, X[i,] обозначает i-ую строку матрицы X, X[,j] – обозначает ее j-ый столбец, а X[i, j] соответствует элементу этой матрицы, расположенному на пересечении этой строки и этого столбца.
 
[[Матрица]] (matrix) – это двумерный массив данных, в котором каждый элемент имеет одинаковый тип (числовой, текстовый или логический). Вы можете обозначать строки, столбцы и элементы матрицы при помощи индексов и квадратных скобок. Например, X[i,] обозначает i-ую строку матрицы X, X[,j] – обозначает ее j-ый столбец, а X[i, j] соответствует элементу этой матрицы, расположенному на пересечении этой строки и этого столбца.
 +
 +
См. [[Матрица смежности]]
  
 
=== Массивы ===
 
=== Массивы ===
Строка 50: Строка 65:
  
 
mydata <- read.csv(file.choose(),sep=";", as.is=T, header=TRUE)
 
mydata <- read.csv(file.choose(),sep=";", as.is=T, header=TRUE)
 +
 +
=== library(tidyverse) ===
 +
* dt1 <- read_csv2("0303.csv") - считать таблицу
  
 
== Как экспортировать данные из R ? ==
 
== Как экспортировать данные из R ? ==
  
 
write.csv(x, file="filename", row.names=FALSE)
 
write.csv(x, file="filename", row.names=FALSE)
 +
 +
=== library(tidyverse) ===
 +
 +
* write_csv (object "filename.csv")
  
 
== Как обработать данные в R ? ==
 
== Как обработать данные в R ? ==
Строка 61: Строка 83:
 
Выбрать только нужные столбцы
 
Выбрать только нужные столбцы
 
newLD <- subset(letdata, select = c( -rev_user_text, -page_title))
 
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])
 
LT2 <- data.frame(User = letdata[,4], Page = letdata[,3])
  
 
Отсортировать по времени
 
Отсортировать по времени
sort1.let <- newLD[order(NewLD$rev_timestamp), ]
+
* sort1.let <- newLD[order(NewLD$rev_timestamp), ]
 +
** Например, сортируем историю летописи lhist2 <- lhist[order(lhist$rev_timestamp),]  
  
 
Выбрать уникальные значения
 
Выбрать уникальные значения
 
ubi2 <- data.frame(User = ubi[,2], Page = ubi[,3])
 
ubi2 <- data.frame(User = ubi[,2], Page = ubi[,3])
  
users <- unique(ubi2[,1]) pages <- unique(ubi2[,2])
+
* users <- unique(ubi2[,1])  
 +
* pages <- unique(ubi2[,2])
 +
* users2006 <- unique(lhist.sub2006[,2])  ;
 +
 
 +
А теперь посчитать сколько в списке участников
  
 
; Выбрать только тех, у кого есть все значения
 
; Выбрать только тех, у кого есть все значения
Строка 88: Строка 116:
 
== Специальные пакеты ==
 
== Специальные пакеты ==
  
=== iGraph ===
+
=== [[igraph]] ===
  
Основные сетевые характеристики графа про помощи пакета - Basic graph analytics using igraph  - http://horicky.blogspot.ru/2012/04/basic-graph-analytics-using-igraph.html
+
Пакет для работы с графами - создание и видуализация графов
  
Create a directed graph using adjacency matrix - [[Матрица смежности]]
+
=== [[tidyverse]] ===
  
m <- matrix(runif(4*4), nrow=4) # создали матрицу смежности
+
Пакет упрощающий работу с данными.
g <- graph.adjacency(m > 0.5)  # а граф построили только для вершин со значениями больше заданного
+
  
 +
Книги по Tidyverse
 +
# Hadley Wickham and Garrett Grolemund - '''R for Data Science Import, Tidy, Transform, Visualize, and Model Data''' 2017
 +
#
  
====  layouts ====
 
: layout.fruchterman.reingold
 
: layout.kamada.kawai
 
  
==== Процедура представления совместной деятельности как [[граф]]а ====
+
=== [[tidygraph]] ===
  
В данном случае - исходные данные = действия участников блога Галактика в 2010 году - как все это начиналось и во что это сложилось. См. [[История образовательной Галактики]]
 
 
 
* vertex.color цвет вершины
 
* vertex.frame.color цвет контура вершины
 
* vertex.shape форма обозначения вершины, одно из значений «none», «circle», «square», «csquare», «rectangle», «crectangle», «vrectangle», «pie», «raster», «sphere»
 
* vertex.size размер вершины (по умолчанию 15)
 
* vertex.size2 второй параметр размера вершины (например, для прямоугольника)
 
* vertex.label вектор символов для обозначения вершин
 
* vertex.label.family семейство шрифтов для меток вершин (например, «Times», «Helvetica»)
 
* vertex.label.font шрифт: 1 — обычный, 2 — жирный, 3 — курсив, 4 — жирный курсив, 5 — символьный
 
* vertex.label.cex размер шрифта (множитель, зависит от устройства)
 
* vertex.label.dist расстояние между меткой и вершиной
 
  
 
=== Пакет для обработки решеток Келли - OpenRepGrid ===
 
=== Пакет для обработки решеток Келли - OpenRepGrid ===
  
 
http://docu.openrepgrid.org/s
 
http://docu.openrepgrid.org/s
 +
 +
 +
=== [[R]] + [[Netlogo]] ===
 +
 +
* http://www.inside-r.org/packages/cran/RNetLogo/docs/NLGetGraph
 +
 +
=== R + Gephi ===
 +
 +
* https://blogs.msdn.microsoft.com/gpalem/2013/03/29/convert-igraph-r-objects-to-gexf-gephi-format/
  
 
----
 
----
  
* http://kateto.net/network-visualization
 
** Визуализация статических и динамических сетей на R - http://habrahabr.ru/company/infopulse/blog/263953/
 
  
 
[[Категория:Язык программирования]]
 
[[Категория:Язык программирования]]
 
[[Категория:R]]
 
[[Категория:R]]
 +
[[Категория:Учебная аналитика]]

Текущая версия на 10:40, 26 марта 2019

Ages 16, 17, 18, 25
FieldActivity Knowledge Constructor, Computational Thinker, Creative Communicator
Purpose Специальный прикладной язык
Visual_Text_Blocks Текст
Dimension 2D
Openness Открытый
Address https://www.r-project.org/
Ancestors Scheme
Descendants Julia
ActiveNow Project is active
Remixing? Yes



Логотип Википедии

В Википедии тоже есть статья по теме
«R (язык программирования)».


R — язык программирования для статистической обработки данных и работы с графикой. Используется в Летописи для внешнего анализа данных наряду с Netlogo, Графвиз, VUE, Gephi, VOSviewer

Содержание

 [убрать

[править] Базовые возможности

[править] Типы данных

[править] Векторы

Векторы (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

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

Книги по Tidyverse

  1. Hadley Wickham and Garrett Grolemund - R for Data Science Import, Tidy, Transform, Visualize, and Model Data 2017


[править] tidygraph

[править] Пакет для обработки решеток Келли - OpenRepGrid

http://docu.openrepgrid.org/s


[править]

[править] R + Gephi


Персональные инструменты
Инструменты