5
5
# ' @noRd
6
6
user_relation_matrices <- function (user_data ) {
7
7
8
- user_data <- add_user_login_cols (user_data )
8
+ user_names <- names (user_data )
9
+ user_data <- add_user_login_cols (user_data ) | >
10
+ combine_user_data ()
9
11
10
- dat <- empty_user_mat (user_data , n = 4L )
12
+ dat <- empty_user_mat (user_data , user_names )
11
13
12
14
13
15
}
14
16
15
- empty_user_mat <- function (user_data , n = 4L ) {
17
+ empty_user_mat <- function (user_data , user_names ) {
16
18
17
- n_users <- length (user_data )
18
- m <- array (NA_real_ , dim = c (n_users , n_users , n ))
19
- rownames (m ) <- colnames (m ) <- names (user_data )
19
+ n_users <- length (user_names )
20
+ n_fields <- length (user_data )
21
+ m <- array (NA_real_ , dim = c (n_users , n_users , n_fields ))
22
+ rownames (m ) <- colnames (m ) <- user_names
23
+ attr (m , " dimnames" ) [[3 ]] <- names (user_data )
20
24
21
25
return (m )
22
26
}
@@ -31,7 +35,7 @@ add_user_login_cols <- function (user_data) {
31
35
res_u <- lapply (seq_along (user_data [[u ]]), function (i ) {
32
36
ud <- user_data [[u ]] [[i ]]
33
37
if (is.data.frame (ud ) && nrow (ud ) > 0L ) {
34
- ud $ login <- names (user_data ) [u ]
38
+ ud $ login <- names (user_data ) [u ]
35
39
} else if (is.character (ud )) {
36
40
ud <- data.frame (ud , login = names (user_data ) [u ])
37
41
names (ud ) [1 ] <- names (user_data [[u ]]) [i ]
@@ -47,6 +51,25 @@ add_user_login_cols <- function (user_data) {
47
51
return (res )
48
52
}
49
53
54
+ # ' Combine all individual elements of 'user_data' for all users.
55
+ # '
56
+ # ' The `add_user_login_cols` enables all data to be `rbind`-ed here.
57
+ # ' @noRd
58
+ combine_user_data <- function (user_data ) {
59
+
60
+ data <- lapply (names (user_data [[1 ]]), function (n ) {
61
+ these <- lapply (user_data , function (i ) i [[n ]])
62
+ res <- do.call (rbind , these )
63
+ rownames (res ) <- NULL
64
+ return (res )
65
+ })
66
+
67
+ names (data ) <- names (user_data [[1 ]])
68
+ data $ general <- NULL
69
+
70
+ return (data )
71
+ }
72
+
50
73
user_relate_commits <- function (user_data ) {
51
74
52
75
commits <- lapply (seq_along (user_data ), function (u ) {
0 commit comments