1
1
# ' Construct user-by-user square matrices of strengths of relation between
2
2
# ' users.
3
3
# '
4
- # ' @param user_data Result of `lapply(logins, repometrics_data_user)`.
4
+ # ' @param data_users Result of `lapply(logins, repometrics_data_user)`.
5
5
# ' Contains the following fields:
6
6
# ' \enumerate{
7
7
# ' \item general (not considered here)
15
15
# ' @return A `data.frame` of pairwise user logins, and proportions of overlap
16
16
# ' betwen repositories in the six variables described above.
17
17
# ' @noRd
18
- user_relation_matrices <- function (user_data ) {
18
+ user_relation_matrices <- function (data_users ) {
19
19
20
20
# Suppress no visible binding notes:
21
21
followers <- following <- org_repo <- repo <- login <- num_comments <- NULL
22
22
23
- user_names <- names (user_data )
24
- user_data <- add_user_login_cols (user_data ) | >
23
+ user_names <- names (data_users )
24
+ data_users <- add_user_login_cols (data_users ) | >
25
25
combine_user_data ()
26
26
27
27
# Pre-processing to name grouping column "repo" and count column "n":
28
- user_data $ commit_cmt $ repo <-
29
- paste0 (user_data $ commit_cmt $ org , user_data $ commit_cmt $ repo )
28
+ data_users $ commit_cmt $ repo <-
29
+ paste0 (data_users $ commit_cmt $ org , data_users $ commit_cmt $ repo )
30
30
31
- user_data $ followers <-
32
- dplyr :: rename (user_data $ followers , repo = followers ) | >
31
+ data_users $ followers <-
32
+ dplyr :: rename (data_users $ followers , repo = followers ) | >
33
33
dplyr :: mutate (n = 1L )
34
- user_data $ following <-
35
- dplyr :: rename (user_data $ following , repo = following ) | >
34
+ data_users $ following <-
35
+ dplyr :: rename (data_users $ following , repo = following ) | >
36
36
dplyr :: mutate (n = 1L )
37
37
38
- user_data $ issue_cmts <-
39
- dplyr :: rename (user_data $ issue_cmts , repo = org_repo ) | >
38
+ data_users $ issue_cmts <-
39
+ dplyr :: rename (data_users $ issue_cmts , repo = org_repo ) | >
40
40
dplyr :: group_by (repo , login ) | >
41
41
dplyr :: summarise (n = sum (num_comments ), .groups = " keep" )
42
- user_data $ issues <- dplyr :: rename (user_data $ issues , repo = org_repo ) | >
42
+ data_users $ issues <- dplyr :: rename (data_users $ issues , repo = org_repo ) | >
43
43
dplyr :: group_by (repo , login ) | >
44
44
dplyr :: summarise (n = dplyr :: n (), .groups = " keep" )
45
45
46
- overlap <- lapply (names (user_data ), function (n ) {
47
- user_data [[n ]] <- user_relate_fields (user_data , user_names , what = n )
46
+ overlap <- lapply (names (data_users ), function (n ) {
47
+ data_users [[n ]] <-
48
+ user_relate_fields (data_users , user_names , what = n )
48
49
})
49
50
50
51
res <- dplyr :: left_join (
@@ -62,18 +63,19 @@ user_relation_matrices <- function (user_data) {
62
63
63
64
# ' Add 'login' columns to all user data, so each element can be combined.
64
65
# ' @noRd
65
- add_user_login_cols <- function (user_data ) {
66
+ add_user_login_cols <- function (data_users ) {
66
67
67
- nms <- names (user_data )
68
- res <- lapply (seq_along (user_data ), function (u ) {
69
- nms_u <- names (user_data [[u ]])
70
- res_u <- lapply (seq_along (user_data [[u ]]), function (i ) {
71
- ud <- user_data [[u ]] [[i ]]
68
+ nms <- names (data_users )
69
+ res <- lapply (seq_along (data_users ), function (u ) {
70
+ nms_u <- names (data_users [[u ]])
71
+ res_u <- lapply (seq_along (data_users [[u ]]), function (i ) {
72
+ ud <- data_users [[u ]] [[i ]]
72
73
if (is.data.frame (ud ) && nrow (ud ) > 0L ) {
73
- ud $ login <- names (user_data ) [u ]
74
+ ud $ login <- names (data_users ) [u ]
74
75
} else if (is.character (ud )) {
75
- ud <- data.frame (ud , login = names (user_data ) [u ])
76
- names (ud ) [1 ] <- names (user_data [[u ]]) [i ]
76
+ login <- names (data_users ) [i ]
77
+ ud <- data.frame (ud , login = rep (login , length (ud )))
78
+ names (ud ) [1 ] <- names (data_users [[u ]]) [i ]
77
79
}
78
80
return (ud )
79
81
})
@@ -90,39 +92,39 @@ add_user_login_cols <- function (user_data) {
90
92
# '
91
93
# ' The `add_user_login_cols` enables all data to be `rbind`-ed here.
92
94
# ' @noRd
93
- combine_user_data <- function (user_data ) {
95
+ combine_user_data <- function (data_users ) {
94
96
95
- data <- lapply (names (user_data [[1 ]]), function (n ) {
96
- these <- lapply (user_data , function (i ) i [[n ]])
97
+ data <- lapply (names (data_users [[1 ]]), function (n ) {
98
+ these <- lapply (data_users , function (i ) i [[n ]])
97
99
res <- do.call (rbind , these )
98
100
rownames (res ) <- NULL
99
101
return (res )
100
102
})
101
103
102
- names (data ) <- names (user_data [[1 ]])
104
+ names (data ) <- names (data_users [[1 ]])
103
105
data $ general <- NULL
104
106
105
107
return (data )
106
108
}
107
109
108
- user_relate_fields <- function (user_data , user_names , what = " commits" ) {
110
+ user_relate_fields <- function (data_users , user_names , what = " commits" ) {
109
111
110
112
# Suppress no visible binding notes:
111
113
num_commits <- login <- repo <- n <- NULL
112
114
113
115
user_combs <- t (utils :: combn (user_names , m = 2L ))
114
116
if (what == " commits" ) {
115
- user_data [[what ]] <-
116
- dplyr :: rename (user_data [[what ]], n = num_commits )
117
+ data_users [[what ]] <-
118
+ dplyr :: rename (data_users [[what ]], n = num_commits )
117
119
} else if (what == " commit_cmt" ) {
118
- user_data $ commit_cmt $ n <- 1L
120
+ data_users $ commit_cmt $ n <- 1L
119
121
}
120
122
121
123
res <- apply (user_combs , 1 , function (i ) {
122
- cmt1 <- dplyr :: filter (user_data [[what ]], login == i [1 ]) | >
124
+ cmt1 <- dplyr :: filter (data_users [[what ]], login == i [1 ]) | >
123
125
dplyr :: group_by (repo ) | >
124
126
dplyr :: summarise (n1 = sum (n ))
125
- cmt2 <- dplyr :: filter (user_data [[what ]], login == i [2 ]) | >
127
+ cmt2 <- dplyr :: filter (data_users [[what ]], login == i [2 ]) | >
126
128
dplyr :: group_by (repo ) | >
127
129
dplyr :: summarise (n2 = sum (n ))
128
130
overlap <- dplyr :: inner_join (cmt1 , cmt2 , by = " repo" )
0 commit comments