diff --git a/DESCRIPTION b/DESCRIPTION index 6da5008..66bf365 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Type: Package Package: refsplitr Title: author name disambiguation, author georeferencing, and mapping of coauthorship networks with 'Web of Science' data -Version: 1.2.2 +Version: 1.2.3 Authors@R: c(person(given = "Auriel M.V.", family = "Fournier", diff --git a/NEWS.md b/NEWS.md index 8fb15f0..e135b70 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,14 @@ +refsplitr 1.2.3 (2026-06-16) +========================= + + +### MINOR IMPROVEMENTS + * Further refining of the algorithm to match authors under a single group_id. + + refsplitr 1.2.2 (2026-06-16) ========================= diff --git a/R/authors_match.R b/R/authors_match.R index 0031fe2..b4f7f3a 100644 --- a/R/authors_match.R +++ b/R/authors_match.R @@ -67,7 +67,56 @@ authors_match <- function(data){ # n_n |> group_by(groupID) |> summarize(n=n_distinct(OI)) |> filter(n>1) # # Now match by much less used RI - unique_ri <- n_n$RI[!is.na(n_n$RI) & is.na(n_n$groupID)] + & is.na(n_n$OI) + + # n_n |> mutate_all(trimws) |> group_by(OI) |> summarize(n=n_distinct(RI)) |> filter(n>1) |> summarize(n_distinct(OI)). arrange(desc(n)) + # n_n |> mutate_all(trimws) |> group_by(RI) |> summarize(n=n_distinct(OI)) |> filter(n>1) |> summarize(n_distinct(RI)) + # n_n |> mutate_all(trimws) |> group_by(RI) |> summarize(n=n_distinct(OI)) |> filter(n<=1) |> tally() + +# test -------------------------------------------------------------------- + + + # RI<-c("1","2","3","3","4") + # OI<-c("a","a","b","c","d") + # df<-data.frame(RI,OI) + # # Count how many times each OI value appears + # oi_counts <- table(df$OI) + # # Find OI values with more than one RI + # multiple_ri <- names(oi_counts[oi_counts > 1]) + # rows_to_remove_oi <- which(df$OI %in% multiple_ri) + # df_clean <- df[-rows_to_remove_oi, ] + # # Find OI values with more than one RI + # ri_counts <- table(df_clean$RI) + # multiple_oi <- names(ri_counts[ri_counts > 1]) + # # Identify rows to remove + # rows_to_remove_ri <- which(df_clean$RI %in% multiple_oi) + # # Remove those rows + # df_clean <- df_clean[-rows_to_remove_ri, ] + + + + + # # Count how many times each OI value appears + # oi_counts <- table(n_n$OI) + # # Find OI values with more than one RI + # multiple_ri <- names(oi_counts[oi_counts > 1]) + # # ID the rows to remove + # rows_to_remove_oi <- which(n_n$OI %in% multiple_ri) + # # remove them + # n_n_clean <- n_n[-rows_to_remove_oi, ] + # # Find RI values with more than one OI + # ri_counts <- table(n_n_clean$RI) + # multiple_oi <- names(ri_counts[ri_counts > 1]) + # # Identify rows to remove + # rows_to_remove_ri <- which(n_n_clean$RI %in% multiple_oi) + # # Remove those rows + # n_n_clean <-n_n_clean[-rows_to_remove_ri, ] + + + + + unique_ri <- n_n_clean$RI[!is.na(n_n_clean$RI) & is.na(n_n_clean$groupID)] + # unique_ri <- n_n$RI[!is.na(n_n$RI) & is.na(n_n$groupID)] unique_ri <- names(table(unique_ri))[table(unique_ri) > 1] if (is.null(unique_ri)) unique_ri <- NA unique_ri <- unique_ri[!is.na(unique_ri)] @@ -81,9 +130,31 @@ authors_match <- function(data){ } else { groupid <- min(n_n$ID[choice], na.rm = TRUE) } - + n_n$groupID[which(n_n$RI == l)] <- groupid } +# test end----------------------------------------------------------------- + # + # original, using above instead to filter outr OI/RI dupes + # + # unique_ri <- n_n$RI[!is.na(n_n$RI) & is.na(n_n$groupID)] + # # unique_ri <- n_n$RI[!is.na(n_n$RI) & is.na(n_n$groupID)] + # unique_ri <- names(table(unique_ri))[table(unique_ri) > 1] + # if (is.null(unique_ri)) unique_ri <- NA + # unique_ri <- unique_ri[!is.na(unique_ri)] + # unique_ri <- as.character(unique_ri) + # for (l in unique_ri) { + # choice <- which(n_n$RI == l) + # groupid <- n_n$groupID[choice] + # groupid <- groupid[!is.na(groupid)] + # if (length(groupid) > 0) { + # groupid <- min(groupid) + # } else { + # groupid <- min(n_n$ID[choice], na.rm = TRUE) + # } + # + # n_n$groupID[which(n_n$RI == l)] <- groupid + # } # n_n |> group_by(OI) |> summarize(n=n_distinct(groupID)) |> filter(n>1) # n_n |> group_by(groupID) |> filter(!is.na(OI)) |> summarize(n=n_distinct(OI)) |> filter(n>1) diff --git a/README.Rmd b/README.Rmd index 0fee7e2..8b2578e 100644 --- a/README.Rmd +++ b/README.Rmd @@ -86,7 +86,7 @@ The Refsplitr package has been described in an article in the [_Journal of Open ### Citation: Refsplitr Package -Fournier, Auriel M.V., Matthew E. Boone, Forrest R. Stevens, and Emilio M. Bruna (2026). refsplitr: author name disambiguation, author georeferencing, and mapping of coauthorship networks with Web of Science data. R package version 1.2.2. +Fournier, Auriel M.V., Matthew E. Boone, Forrest R. Stevens, and Emilio M. Bruna (2026). refsplitr: author name disambiguation, author georeferencing, and mapping of coauthorship networks with Web of Science data. R package version 1.2.3. @Manual{refsplitr2025, title = {refsplitr: author name disambiguation, author georeferencing, @@ -94,7 +94,7 @@ Fournier, Auriel M.V., Matthew E. Boone, Forrest R. Stevens, and Emilio M. Bruna author = {Fournier, Auriel M.V., Matthew E. Boone, Forrest R. Stevens, and Emilio M. Bruna}, year = {2026}, - note = {R package version 1.2.2.}, + note = {R package version 1.2.3.}, url ={https://github.com/ropensci/refsplitr} } diff --git a/README.html b/README.html index 50b2687..5faf2aa 100644 --- a/README.html +++ b/README.html @@ -467,14 +467,14 @@

Citation: Refsplitr Package

Fournier, Auriel M.V., Matthew E. Boone, Forrest R. Stevens, and Emilio M. Bruna (2026). refsplitr: author name disambiguation, author georeferencing, and mapping of coauthorship networks with Web of Science -data. R package version 1.2.2. https://github.com/ropensci/refsplitr

+data. R package version 1.2.3. https://github.com/ropensci/refsplitr

@Manual{refsplitr2025,
 title = {refsplitr: author name disambiguation, author georeferencing, 
 and mapping of coauthorship networks with Web of Science data.},
 author = {Fournier, Auriel M.V., Matthew E. Boone, Forrest R. Stevens, 
 and Emilio M. Bruna},
 year = {2026},
-note = {R package version 1.2.2.},
+note = {R package version 1.2.3.},
 url ={https://github.com/ropensci/refsplitr}
 }
diff --git a/README.md b/README.md index a5e65cd..06f9ee4 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ Auriel M.V. Fournier, Matthew E. Boone, Forrest R. Stevens, and and mapping of coauthorship networks with Web of Science data.}, author = {Fournier, Auriel M.V., Matthew E. Boone, Forrest R. Stevens, and Emilio M. Bruna}, year = {2026}, - note = {R package version 1.2.2.}, + note = {R package version 1.2.3.}, url={https://github.com/ropensci/refsplitr} } diff --git a/codemeta.json b/codemeta.json index 03a5b61..e04ce63 100644 --- a/codemeta.json +++ b/codemeta.json @@ -8,7 +8,7 @@ "codeRepository": "https://github.com/ropensci/refsplitr", "issueTracker": "https://github.com/ropensci/refsplitr/issues", "license": "https://spdx.org/licenses/GPL-3.0", - "version": "1.2.2", + "version": "1.2.3", "programmingLanguage": { "@type": "ComputerLanguage", "name": "R", diff --git a/inst/CITATION b/inst/CITATION index e2c55f3..3b34da7 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -5,8 +5,8 @@ citEntry( title = "refsplitr: Author name disambiguation, author georeferencing, and mapping of coauthorship networks with Web of Science data.", author = "Auriel M.V. Fournier and Matthew E. Boone and Forrest R. Stevens and Emilio M. Bruna", - note = "R package version 1.2.0.", - year = "2025", + note = "R package version 1.2.3.", + year = "2026", url = "https://github.com/ropensci/refsplitr", textVersion = paste("Fournier, Auriel M.V., Matthew E. Boone, ", "Forrest R. Stevens, and Emilio M. Bruna (2025).",