## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment  = "#>",
  fig.width  = 7,
  fig.height = 4,
  message  = FALSE,
  warning  = FALSE
)

## ----load---------------------------------------------------------------------
library(socialdrift)
data(sim_social_events)
head(sim_social_events)

## ----as_events----------------------------------------------------------------
ev <- as_social_events(
  sim_social_events,
  actor_group  = "actor_group",
  target_group = "target_group"
)

## ----graph_series-------------------------------------------------------------
gs <- build_graph_series(ev, window = "month")
gs   # print method shows summary

## ----metrics------------------------------------------------------------------
summarize_network_series(gs)

## ----plot_density-------------------------------------------------------------
dens_tbl <- network_density_ts(gs)
plot_network_metrics(dens_tbl, metric = "density",
                     title = "Monthly network density")

## ----plot_all, fig.height = 6-------------------------------------------------
all_metrics <- summarize_network_series(gs)
plot_network_metrics(
  all_metrics,
  metric = c("density", "reciprocity", "clustering", "degree_gini"),
  title  = "Network structure over time"
)

## ----communities--------------------------------------------------------------
comm_tbl <- detect_communities_ts(gs)
comm_tbl

## ----comm_drift---------------------------------------------------------------
drift_comm <- community_drift(comm_tbl)
drift_comm

## ----cfi----------------------------------------------------------------------
community_fragmentation_index(comm_tbl)

## ----ndi----------------------------------------------------------------------
ndi_tbl <- network_drift(gs)
ndi_tbl

## ----plot_ndi-----------------------------------------------------------------
plot_network_drift(ndi_tbl)

## ----roles--------------------------------------------------------------------
roles_tbl <- role_trajectories(gs)
head(roles_tbl, 12)

## ----plot_roles---------------------------------------------------------------
plot_role_trajectories(roles_tbl, type = "stacked")

## ----rmi----------------------------------------------------------------------
role_mobility_index(roles_tbl)

## ----vci----------------------------------------------------------------------
visibility_concentration_index(gs)

## ----conc---------------------------------------------------------------------
creator_concentration(gs, p = 0.10)

## ----disparities--------------------------------------------------------------
audit_group_disparities(ev, gs, group_var = "actor_group", window = "month")

## ----gap----------------------------------------------------------------------
engagement_gap(ev, gs, group_var = "actor_group", window = "month")

## ----full_workflow, eval = FALSE----------------------------------------------
# library(socialdrift)
# 
# ev <- as_social_events(sim_social_events,
#                        actor_group  = "actor_group",
#                        target_group = "target_group")
# 
# gs       <- build_graph_series(ev, window = "month")
# summary  <- summarize_network_series(gs)
# ndi      <- network_drift(gs)
# comm     <- detect_communities_ts(gs)
# cfi      <- community_fragmentation_index(comm)
# vci      <- visibility_concentration_index(gs)
# roles    <- role_trajectories(gs)
# rmi      <- role_mobility_index(roles)
# gaps     <- audit_group_disparities(ev, gs)
# 
# plot_network_drift(ndi)
# plot_role_trajectories(roles)

