История образовательной Галактики
Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Строка 6: | Строка 6: | ||
Понадобится пакет igraph | Понадобится пакет igraph | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
bad.vs<-V(ubi2.network)[degree(ubi2.network)<3] #identify those vertices part of less than three edges | bad.vs<-V(ubi2.network)[degree(ubi2.network)<3] #identify those vertices part of less than three edges | ||
Строка 23: | Строка 12: | ||
− | 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) | ||
+ | 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) | ||
+ | |||
+ | Если | ||
− | + | bad.vs<-V(lt2.network)[degree(lt2.network)<2] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | bad.vs<-V(lt2.network)[degree(lt2.network)<2] | + | |
lt2.network<-delete.vertices(lt2.network, bad.vs) | lt2.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) | V(lt2.network)$label <-ifelse (substring(V(lt2.network)$name, 1, 1) == "U", V(lt2.network)$name, NA) |
Версия 20:03, 8 февраля 2016
Как мы превращаем историю деятельности в структуру отношений? Здесь приведен пример истории образов
История Галактики средствами R
Понадобится пакет igraph
bad.vs<-V(ubi2.network)[degree(ubi2.network)<3] #identify those vertices part of less than three edges ubi2.network<-delete.vertices(ubi2.network, bad.vs) #exclude them from the graph - убрать узлы с
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)
Если
bad.vs<-V(lt2.network)[degree(lt2.network)<2]
lt2.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)
Полезные функции igraph
- simplify
- net <- simplify(net, remove.multiple = F, remove.loops = T)
- можно было использовать simplify, чтобы свернуть несколько ребер в одно, суммируя их веса с помощью команды типа simplify(net, edge.attr.comb=list(Weight="sum","ignore"))
См. История Летописи - как мы можем сравнить 2 сообщества?