История образовательной Галактики
Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
(Новая страница: « История Галактики средствами R rm(list=ls()) ubi <- read.csv(file.choose(),sep=";", as.is=T, header=F, encoding ="UTF-8") ubi2 …») |
(→История Галактики средствами R) |
||
(не показаны 6 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
+ | Как мы превращаем историю деятельности в структуру отношений? Здесь приведен пример истории образов | ||
− | История Галактики средствами R | + | == История Галактики средствами [[R]] == |
− | + | ||
+ | Понадобится пакет igraph | ||
rm(list=ls()) | rm(list=ls()) | ||
− | + | ||
− | + | ghist <- read.csv(file.choose(),sep=";", as.is=T, header=T, encoding ="UTF-8") | |
− | + | ghist <- na.omit(ghist ) | |
− | + | ghist.sub <- na.omit(ghist.sub) | |
− | V( | + | g2 <- data.frame(User = paste("U",lhist.sub[,1],sep=":" ) , Page = paste("P",lhist.sub[,2],sep=":") ) |
− | V( | + | g2.network <- graph.data.frame(g2,directed=T) ;; Если хотим направленный граф |
+ | g2.network <- simplify(g2.network) ;; убрали повторы связей | ||
+ | V(g2.network)$color <-ifelse (substring(V(g2.network)$name, 1, 1) == "U",'red','blue') | ||
+ | V(g2.network)$shape <-ifelse (substring(V(g2network)$name, 1, 1) == "U",'circle','square') | ||
set.seed(42) | set.seed(42) | ||
− | + | ;; | |
− | plot( | + | plot(g2.network, edge.arrow.size=.4,vertex.label=NA, vertex.size=2, layout=layout.kamada.kawai) |
+ | |||
+ | Если | ||
+ | |||
+ | poor.vs<-V(g2.network)[degree(g2.network)<2] | ||
+ | rich.vs <-V(g2.network)[degree(g2.network)>40] | ||
+ | g2.network<-delete.vertices(lt2.network, bad.vs) | ||
+ | V(lt2.network)$label <-ifelse (substring(V(lt2.network)$name, 1, 1) == "U", V(lt2.network)$name, NA) | ||
+ | deg <- degree(lt2.network, mode="all") | ||
+ | V(lt2.network)$label <-ifelse (substring(V(lt2.network)$name, 1, 1) == "U" & deg > 50, V(lt2.network)$name, NA) | ||
+ | plot(lt2.network, edge.arrow.size=.4,vertex.size=deg/10, layout=layout.kamada.kawai) | ||
+ | |||
+ | plot(degree.distribution(g2.network)) ;; Распределение по числу связей | ||
+ | |||
+ | usersg <- V(lt2.network)[V(lt2.network)$color == 'red'] ;; участники | ||
+ | pages <- V(lt2.network)[V(lt2.network)$color == 'blue'] ;; страницы | ||
+ | |||
+ | === Полезные функции igraph === | ||
− | + | ; simplify | |
+ | : net <- simplify(net, remove.multiple = F, remove.loops = T) | ||
+ | : можно было использовать simplify, чтобы свернуть несколько ребер в одно, суммируя их веса с помощью команды типа simplify(net, edge.attr.comb=list(Weight="sum","ignore")) | ||
− | |||
− | + | См. [[История Летописи]] - как мы можем сравнить 2 сообщества? | |
[[Категория:Учебная аналитика]] | [[Категория:Учебная аналитика]] | ||
[[Категория:R]] | [[Категория:R]] |
Текущая версия на 21:03, 8 февраля 2016
Как мы превращаем историю деятельности в структуру отношений? Здесь приведен пример истории образов
[править] История Галактики средствами R
Понадобится пакет igraph
rm(list=ls())
ghist <- read.csv(file.choose(),sep=";", as.is=T, header=T, encoding ="UTF-8") ghist <- na.omit(ghist ) ghist.sub <- na.omit(ghist.sub) g2 <- data.frame(User = paste("U",lhist.sub[,1],sep=":" ) , Page = paste("P",lhist.sub[,2],sep=":") ) g2.network <- graph.data.frame(g2,directed=T) ;; Если хотим направленный граф g2.network <- simplify(g2.network) ;; убрали повторы связей V(g2.network)$color <-ifelse (substring(V(g2.network)$name, 1, 1) == "U",'red','blue') V(g2.network)$shape <-ifelse (substring(V(g2network)$name, 1, 1) == "U",'circle','square') set.seed(42)
plot(g2.network, edge.arrow.size=.4,vertex.label=NA, vertex.size=2, layout=layout.kamada.kawai)
Если
poor.vs<-V(g2.network)[degree(g2.network)<2] rich.vs <-V(g2.network)[degree(g2.network)>40] g2.network<-delete.vertices(lt2.network, bad.vs) V(lt2.network)$label <-ifelse (substring(V(lt2.network)$name, 1, 1) == "U", V(lt2.network)$name, NA) deg <- degree(lt2.network, mode="all") V(lt2.network)$label <-ifelse (substring(V(lt2.network)$name, 1, 1) == "U" & deg > 50, V(lt2.network)$name, NA) plot(lt2.network, edge.arrow.size=.4,vertex.size=deg/10, layout=layout.kamada.kawai)
plot(degree.distribution(g2.network)) ;; Распределение по числу связей
usersg <- V(lt2.network)[V(lt2.network)$color == 'red'] ;; участники pages <- V(lt2.network)[V(lt2.network)$color == 'blue'] ;; страницы
[править] Полезные функции igraph
- simplify
- net <- simplify(net, remove.multiple = F, remove.loops = T)
- можно было использовать simplify, чтобы свернуть несколько ребер в одно, суммируя их веса с помощью команды типа simplify(net, edge.attr.comb=list(Weight="sum","ignore"))
См. История Летописи - как мы можем сравнить 2 сообщества?