edges <- read.csv("edges.csv")
users <- read.csv("users.csv")
Average number of friends per user
nrow(edges) * 2 / nrow(users)
## [1] 4.949153
Out of all the students who listed a school, what was the most common locale?
table(users$school, users$locale)
##
## A B
## 3 6 31
## A 0 0 17
## AB 0 0 2
Is it possible that either school A or B is an all-girls or all-boys school?
table(users$school, users$gender)
##
## A B
## 1 11 28
## A 1 3 13
## AB 0 1 1
library(igraph)
## Warning: package 'igraph' was built under R version 3.1.3
##
## Attaching package: 'igraph'
##
## The following objects are masked from 'package:stats':
##
## decompose, spectrum
##
## The following object is masked from 'package:base':
##
## union
g <- graph.data.frame(edges, FALSE, users)
plot(g, vertex.size=5, vertex.label=NA)
How many users are friends with 10 or more other users?
sum(degree(g) >= 10)
## [1] 9
To make vertices with high degree (more friends) larger:
V(g)$size <- degree(g)/2 + 2
plot(g, vertex.label=NA)
Largest and smallest size of vertex
table(V(g)$size)
##
## 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8.5 10.5 11
## 7 10 4 9 1 4 4 3 6 2 4 1 2 1 1
Changing color of vertex based on gender:
V(g)$color <- "black"
V(g)$color[V(g)$gender == "A"] <- "red"
V(g)$color[V(g)$gender == "B"] <- "gray"
plot(g, vertex.label=NA)
Color vertex based on school
V(g)$color <- "black"
V(g)$color[V(g)$school == "A"] <- "red"
V(g)$color[V(g)$school == "AB"] <- "green"
plot(g, vertex.label=NA)
Color vertex based on locale
V(g)$color <- "black"
V(g)$color[V(g)$locale == "A"] <- "red"
V(g)$color[V(g)$locale == "B"] <- "green"
plot(g, vertex.label=NA)