── 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
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 networklibrary(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
Friendship data finished
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.
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 |>group_by(nominator) |>summarize(Mean =round(mean(score), 1)) |>arrange(-Mean) |>datatable(rownames = F,caption ='Average friendship ratings given by each individual')
Question 1
friendships |>group_by(nominated) |>summarize(Mean =round(mean(score), 1)) |>arrange(-Mean) |>datatable(rownames = F,caption ='Average ratings given to each individual')
Question 1 - This data table shows the average friendship scores given to each individual by the other participants.
friendships |>group_by(nominator) |>summarize(Mean =round(mean(score), 1)) |>arrange(-Mean) |>datatable(rownames = F,caption ='Average friendship ratings given by each individual')
friendships |>plot_ly(x =~score, y =~expected_score) |>add_markers()
friend_model <-lm(expected_score ~ score, data = friendships)tidy(friend_model)
friendship_nodes |>mutate(named_friends =degree((besties_network), mode ="out")) |>mutate(named_by_others =degree((besties_network), mode ="in")) |>plot_ly(x =~named_by_others) |>add_histogram() |>layout(title ="How many times besties were named by others")
Question 4 - This second histogram shows the amount of times that friends were named by other students.
Question 3 - This chart shows the people who were rated as most popular and least popular based on the ratings given by others.
Question 5 >
reciprocity(friend_network, mode ="ratio")
[1] 1
reciprocity(besties_network, mode ="ratio")
[1] 0.4385965
Question 5 - These show that there are 43% of people who had reciprocal relations to who they believed were their best friends while there is a 52% reciprocal relation between those who rated others as general friends.
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `group = membership(infomap.community(besties_network))`.
Caused by warning:
! `infomap.community()` was deprecated in igraph 2.0.0.
ℹ Please use `cluster_infomap()` instead.