Skip to content

Commit b4b8331

Browse files
committed
finish working version of 'user_relation_matrices'
1 parent 08b635a commit b4b8331

File tree

3 files changed

+49
-11
lines changed

3 files changed

+49
-11
lines changed

DESCRIPTION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: repometrics
22
Title: Metrics for Your Code Repository
3-
Version: 0.1.3.024
3+
Version: 0.1.3.025
44
Authors@R:
55
person("Mark", "Padgham", , "mark.padgham@email.com", role = c("aut", "cre"),
66
comment = c(ORCID = "0000-0003-2172-5265"))

R/analyse-users.R

+47-9
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,45 @@
1212
#' \item issue_cmts Comments on issues
1313
#' \item issues Issues opened by user.
1414
#' }
15+
#' @return A `data.frame` of pairwise user logins, and proportions of overlap
16+
#' betwen repositories in the six variables described above.
1517
#' @noRd
1618
user_relation_matrices <- function (user_data) {
1719

1820
user_names <- names (user_data)
1921
user_data <- add_user_login_cols (user_data) |>
2022
combine_user_data ()
2123

22-
cmts <- user_relate_commits (user_data, user_names)
24+
# Pre-processing to name grouping column "repo" and count column "n":
25+
user_data$commit_cmt$repo <-
26+
paste0 (user_data$commit_cmt$org, user_data$commit_cmt$repo)
27+
28+
user_data$followers <-
29+
dplyr::rename (user_data$followers, repo = followers) |>
30+
dplyr::mutate (n = 1L)
31+
user_data$following <-
32+
dplyr::rename (user_data$following, repo = following) |>
33+
dplyr::mutate (n = 1L)
34+
35+
user_data$issue_cmts <-
36+
dplyr::rename (user_data$issue_cmts, repo = org_repo) |>
37+
dplyr::group_by (repo, login) |>
38+
dplyr::summarise (n = sum (num_comments), .groups = "keep")
39+
user_data$issues <- dplyr::rename (user_data$issues, repo = org_repo) |>
40+
dplyr::group_by (repo, login) |>
41+
dplyr::summarise (n = dplyr::n (), .groups = "keep")
42+
43+
overlap <- lapply (names (user_data), function (n) {
44+
user_data [[n]] <- user_relate_fields (user_data, user_names, what = n)
45+
})
46+
47+
res <- dplyr::left_join (overlap [[1]], overlap [[2]], by = c ("login1", "login2")) |>
48+
dplyr::left_join (overlap [[3]], by = c ("login1", "login2")) |>
49+
dplyr::left_join (overlap [[4]], by = c ("login1", "login2")) |>
50+
dplyr::left_join (overlap [[5]], by = c ("login1", "login2")) |>
51+
dplyr::left_join (overlap [[6]], by = c ("login1", "login2"))
52+
53+
return (res)
2354
}
2455

2556
#' Add 'login' columns to all user data, so each element can be combined.
@@ -67,17 +98,22 @@ combine_user_data <- function (user_data) {
6798
return (data)
6899
}
69100

70-
user_relate_commits <- function (user_data, user_names) {
101+
user_relate_fields <- function (user_data, user_names, what = "commits") {
71102

72103
user_combs <- t (combn (user_names, m = 2L))
104+
if (what == "commits") {
105+
user_data [[what]] <- dplyr::rename (user_data [[what]], n = num_commits)
106+
} else if (what == "commit_cmt") {
107+
user_data$commit_cmt$n <- 1L
108+
}
73109

74110
res <- apply (user_combs, 1, function (i) {
75-
cmt1 <- dplyr::filter (user_data$commits, login == i [1]) |>
111+
cmt1 <- dplyr::filter (user_data [[what]], login == i [1]) |>
76112
dplyr::group_by (repo) |>
77-
dplyr::summarise (n1 = sum (num_commits))
78-
cmt2 <- dplyr::filter (user_data$commits, login == i [2]) |>
113+
dplyr::summarise (n1 = sum (n))
114+
cmt2 <- dplyr::filter (user_data [[what]], login == i [2]) |>
79115
dplyr::group_by (repo) |>
80-
dplyr::summarise (n2 = sum (num_commits))
116+
dplyr::summarise (n2 = sum (n))
81117
overlap <- dplyr::inner_join (cmt1, cmt2, by = "repo")
82118

83119
res <- 0
@@ -88,10 +124,12 @@ user_relate_commits <- function (user_data, user_names) {
88124
return (res)
89125
})
90126

91-
data.frame (
127+
res <- data.frame (
92128
login1 = user_combs [, 1],
93129
login2 = user_combs [, 2],
94-
overlap = res,
95-
what = "commits"
130+
res
96131
)
132+
names (res) [3] <- what
133+
134+
return (res)
97135
}

codemeta.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"codeRepository": "https://github.com/ropensci-review-tools/repometrics",
99
"issueTracker": "https://github.com/ropensci-review-tools/repometrics/issues",
1010
"license": "https://spdx.org/licenses/GPL-3.0",
11-
"version": "0.1.3.024",
11+
"version": "0.1.3.025",
1212
"programmingLanguage": {
1313
"@type": "ComputerLanguage",
1414
"name": "R",

0 commit comments

Comments
 (0)