── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.4.4 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.0
✔ purrr 1.0.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(igraph) # This is the package to analyze the network
Warning: package 'igraph' was built under R version 4.3.3
Attaching package: 'igraph'
The following objects are masked from 'package:lubridate':
%--%, union
The following objects are masked from 'package:dplyr':
as_data_frame, groups, union
The following objects are masked from 'package:purrr':
compose, simplify
The following object is masked from 'package:tidyr':
crossing
The following object is masked from 'package:tibble':
as_data_frame
The following objects are masked from 'package:stats':
decompose, spectrum
The following object is masked from 'package:base':
union
library(visNetwork) # Creates visualizations of the network
Warning: package 'visNetwork' was built under R version 4.3.3
library(DT)library(plotly)
Attaching package: 'plotly'
The following object is masked from 'package:igraph':
groups
The following object is masked from 'package:ggplot2':
last_plot
The following object is masked from 'package:stats':
filter
The following object is masked from 'package:graphics':
layout
library(broom) # includes some of our regression functions
Rows: 84 Columns: 2
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
dbl (2): id, name
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
friendships <-read_csv("friendships.csv")
Rows: 6972 Columns: 4
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
dbl (4): nominator, nominated, score, expected_score
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
friendships |>group_by(nominator) |>summarize(Mean =round(mean(score), 1)) |>arrange(-Mean) |>datatable(rownames = F,caption ='Average friendship ratings given by each student')
The above data table displays the scores and average friendship ratings given by each student.
friendships |>group_by(nominated) |>summarize(Mean =round(mean(score), 1)) |>arrange(-Mean) |>datatable(rownames = F,caption ='Average friendship ratings given to each student')
The above data table displays the scores and average friendship rating given to each student.
The above data table illustrates the students popularity based on the number of times they named others as friends and the number of times they were named friends by others.
friendship_nodes |>mutate(named_friends =degree((friend_network), mode ="out")) |>mutate(named_by_others=degree((friend_network), mode ="in")) |>mutate(popularity = named_friends - named_by_others) |>plot_ly(x =~named_friends) |>add_histogram() |>layout(title ="Number of friends that students named")
The above histogram illustrates the number of friends that students named.
reciprocity(friend_network, mode ="ratio")
[1] 0.5205479
The above analysis illustrates the friendship reciprocity between the college students. Further, this demonstrates that friendship reciprocity among the students was lower than expected.