Gitea Organization/civilyticsR/pipeline/head There was a failure building this commit
49 lines
1.3 KiB
R
49 lines
1.3 KiB
R
# Join utilities
|
|
#' Test the join between two sets of identifiers
|
|
#'
|
|
#' @param x a vector of identifiers to check against y
|
|
#' @param y a vector of identifiers to check against x
|
|
#' @param distinct logical, should duplicate values of x and y be removed before testing
|
|
#'
|
|
#' @return nothing, print a summary of match statistics to the console
|
|
#' @export
|
|
#'
|
|
#' @examples
|
|
#' x <- LETTERS
|
|
#' y <- c(letters, LETTERS)
|
|
#' match_test(x, y)
|
|
match_test <- function(x, y, distinct = TRUE) {
|
|
if (distinct) {
|
|
x <- unique(x)
|
|
y <- unique(y)
|
|
cat("**** Distinct Matches ****")
|
|
cat("\n")
|
|
|
|
}
|
|
|
|
# TODO: DO not report 100% if there is even 1 mismatch
|
|
|
|
xiny <- sum(x %in% y)
|
|
total_x <- length(x)
|
|
|
|
yinx <- sum(y %in% x)
|
|
total_y <- length(y)
|
|
|
|
cat("**** Match Summary ****")
|
|
cat("\n")
|
|
cat("X in Y")
|
|
cat("\n")
|
|
cat(paste0("Of the ", total_x, " X values, ", xiny, " (",
|
|
100*round(xiny/total_x, 2), "%) were matched."))
|
|
cat("\n")
|
|
cat("********************************************")
|
|
cat("\n")
|
|
cat("Y in X")
|
|
cat("\n")
|
|
cat(paste0("Of the ", total_y, " Y values, ", yinx, " (",
|
|
100*round(yinx/total_y, 2), "%) were matched."))
|
|
cat("\n")
|
|
cat("******************************************")
|
|
|
|
}
|