library(readxl)
library(dplyr)
library(ggplot2)
library(plotly)
options(scipen = TRUE)
twitterdata <- read.csv("C:/Users/Tolga/Desktop/YTU/sosyalag/network.csv")
twitterdata <- twitterdata[,-1]
names <- c("alperumuttosun","eaylnk","gizemzzengin","canaltundaloglu","palairemm","senatosko","86alkin","alishanozturk","tolgaakurtuluss","nurdanayozturk","mrv2712")
paste0("Çalışmaya katıldığın için teşekkürler! :) ", names)
## [1] "Çalışmaya katıldığın için teşekkürler! :) alperumuttosun"
## [2] "Çalışmaya katıldığın için teşekkürler! :) eaylnk"
## [3] "Çalışmaya katıldığın için teşekkürler! :) gizemzzengin"
## [4] "Çalışmaya katıldığın için teşekkürler! :) canaltundaloglu"
## [5] "Çalışmaya katıldığın için teşekkürler! :) palairemm"
## [6] "Çalışmaya katıldığın için teşekkürler! :) senatosko"
## [7] "Çalışmaya katıldığın için teşekkürler! :) 86alkin"
## [8] "Çalışmaya katıldığın için teşekkürler! :) alishanozturk"
## [9] "Çalışmaya katıldığın için teşekkürler! :) tolgaakurtuluss"
## [10] "Çalışmaya katıldığın için teşekkürler! :) nurdanayozturk"
## [11] "Çalışmaya katıldığın için teşekkürler! :) mrv2712"
##from 'a göre gruplandırma
twitterdata%>%
group_by(from)%>%
summarise(n=n())%>%
arrange(desc(n))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 1,205 x 2
## from n
## <chr> <int>
## 1 tolgaakurtuluss 684
## 2 eaylnk 240
## 3 gizemzzengin 197
## 4 canaltundaloglu 167
## 5 palairemm 140
## 6 senatosko 106
## 7 86alkin 92
## 8 alishanozturk 76
## 9 alperumuttosun 63
## 10 nurdanayozturk 59
## # ... with 1,195 more rows
##to 'ya göre gruplandırma
twitterdata%>%
group_by(to)%>%
summarise(n=n())%>%
arrange(desc(n))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 1,687 x 2
## to n
## <chr> <int>
## 1 tolgaakurtuluss 560
## 2 canaltundaloglu 215
## 3 gizemzzengin 184
## 4 senatosko 73
## 5 eaylnk 67
## 6 nurdanayozturk 45
## 7 86alkin 25
## 8 alishanozturk 20
## 9 mrv2712 19
## 10 eskitvitler 5
## # ... with 1,677 more rows
## Ağırlıklandırma yapıldığında dağılım
twitterdata %>%
group_by(from,to)%>%
summarise(wgt=n())%>%
arrange(desc(wgt))
## `summarise()` regrouping output by 'from' (override with `.groups` argument)
## # A tibble: 3,059 x 3
## # Groups: from [1,205]
## from to wgt
## <chr> <chr> <int>
## 1 alishanozturk tolgaakurtuluss 2
## 2 tolgaakurtuluss alishanozturk 2
## 3 _merveks senatosko 1
## 4 _ozanc_ tolgaakurtuluss 1
## 5 _Seydaates nurdanayozturk 1
## 6 _Sokak_Sairi_ canaltundaloglu 1
## 7 _ytumed alishanozturk 1
## 8 _zbek1 tolgaakurtuluss 1
## 9 07Mk7 eaylnk 1
## 10 12Azgar tolgaakurtuluss 1
## # ... with 3,049 more rows
ggplotly(twitterdata %>%
group_by(from,to)%>%
summarise(wgt=n())%>%
ggplot()+
geom_point(aes(x=from,y=to,color=as.factor(wgt))))
## `summarise()` regrouping output by 'from' (override with `.groups` argument)
library(igraph)
library(visNetwork)
plot2 <- graph_from_data_frame(d=twitterdata, directed=T)
plot(plot2)
myViz <- function (myGraph){
visIgraph(myGraph, randomSeed = 10) %>%
visIgraphLayout(randomSeed = 10) %>%
visNodes(
font = list(size = 59),
shape = "dot",
color = list(
background = "#0085AF",
border = "#013848",
highlight = "#FF8000"
)
) %>%
visEdges(
shadow = FALSE,
color = list(color = "#0085AF", highlight = "#C62F4B")
) %>%
visLayout(randomSeed = 10)%>%
visOptions(
highlightNearest = TRUE,
collapse = list(enabled = FALSE, clusterOptions = list(shape = "square")),
autoResize = TRUE,
nodesIdSelection = TRUE
)%>%
visInteraction(
hover = TRUE,
hoverConnectedEdges = FALSE,
selectConnectedEdges = FALSE,
multiselect = FALSE,
dragNodes = TRUE,
dragView = TRUE,
zoomView = TRUE,
navigationButtons = FALSE,
selectable = TRUE
)
}
myViz(plot2)
#Tablo
library(DT)
derece <- degree(plot2)
derecemerkez <- degree(plot2, normalized=TRUE, mode = "in")
yakinlikmerkez <- closeness(plot2, normalized=TRUE)
## Warning in closeness(plot2, normalized = TRUE): At centrality.c:2784 :closeness
## centrality is not well-defined for disconnected graphs
arasindamerkez <- betweenness(plot2, normalized=TRUE)
pagerankmerkez <- page_rank(plot2)$vector #Google’ın web sayfalarını sıralama başarısı PageRank adlı algoritmaya dayanmaktadır
datatable(data.frame(derece,derecemerkez, yakinlikmerkez, arasindamerkez, pagerankmerkez),filter="top")
#Bir kişinin diğerleri ile bağlantısı olup olmadığını ya da kaçıncı seviye bağlantısı olduğunu listelemek için kullanılır
datatable(distances(plot2, v=V(plot2)[names], to=V(plot2)[names], weights=NA),options = list(pageLength = 11, width="100%", scrollX = TRUE))%>%
formatStyle(
columns = 1:11,
color = styleEqual(c(1,2,3,4), c("red", "orange","purple","blue"))
)
plot3 <- graph_from_data_frame(d=twitterdata, directed=F)
ceb <- cluster_edge_betweenness(plot3)
dendPlot(ceb, mode="hclust")
par(mfrow=c(1, 3), mar=c(0,0,1,0))
plot(ceb, plot3, layout=layout_as_tree, main="Tree")
plot(ceb, plot3, layout=layout_with_fr, main="Force-directed")
plot(ceb, plot3, layout=layout_nicely, main="Nicely")
ceb
## IGRAPH clustering edge betweenness, groups: 9, mod: 0.73
## + groups:
## $`1`
## [1] "DataCornering" "bdemirbilek1" "EkremBayar_" "nefise_mutlu"
## [5] "mustafa_ersoyy" "fofiabril396" "Michelle_32842" "onurcelikgun"
## [9] "furkaandmr0" "xvlademir" "iremkomurcu" "kbra_ferah"
## [13] "HusnuHatipoglu" "OzancanOzdemir" "bolattburak" "navidnassiri"
## [17] "kmahi_way" "divadnojnarg" "debashism222" "Merzmensch"
## [21] "l_aviator_96" "onurrcamli" "YBerk7" "birazartist"
## [25] "hayriyegreler" "furknzlp" "sametejem" "ibrhm1nce"
## [29] "kutupokuzu" "yasinerofc" "_ozanc_" "iambarisozkan"
## [33] "muzaffersaid" "pnar_aktan" "saykoohayat" "utkuozev"
## + ... omitted several groups/vertices
#IGRAPH clustering edge betweenness, groups: 9
library(CINNA)
#Yoğunluk (Density) mevcut bağlantı sayısının potansiyel olabilecek tüm bağlantı sayısına oranını verir.
edge_density(plot2)
## [1] 0.0005211675
#Ortalama yol uzunluğu mean_distance() fonksiyonu ile hesaplanır.
mean_distance(plot2, directed=FALSE)
## [1] 3.474699
#İki birim arasındaki en uzun mesafe diameter() fonksiyonu ile hesaplanır.
diameter(plot2, directed=FALSE, weights=NA)
## [1] 6
#Karşılıklılık (Reciprocity) geçişliliğin başka bir ölçüsüdür. Düğümler arasındaki bağlantıların karşılıklı yani iki yönlü olup olmadığının ölçülmesidir. Dolayısıyla yalnızca yönlü ağlar için tanımlıdır. Takip edersen takip ederim.
plot2 <- graph_from_data_frame(d=twitterdata, directed=T)
reciprocity(plot2)
## [1] 0.3070892
#Kümelenme katsayısı olarak da bilinen geçişlilik transitivity() fonksiyonu ile hesaplanır. Örneğin, A birimi B birimi ile bağlantılı ve B birimi de C birimi ile bağlantılıysa, A biriminin C birimi ile bağlantılı olma olasılığı nedir sorusunun yanıtıdır. Bu örnekte birimlerin %18.4’ü ve %66.3'ü bu şekilde bağlantılıdır.
transitivity(plot2)
## [1] 0.00006833934