From bbd56a10ea97056366206470b992374132405b87 Mon Sep 17 00:00:00 2001 From: Sam El-Kamand Date: Wed, 18 Dec 2024 15:47:31 +1100 Subject: [PATCH 1/8] fix: added uwot dep for pkgdown articles --- DESCRIPTION | 1 + 1 file changed, 1 insertion(+) diff --git a/DESCRIPTION b/DESCRIPTION index 02387a9..89251ac 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -31,6 +31,7 @@ Suggests: knitr, rmarkdown, testthat (>= 3.0.0) +Config/Needs/website: uwot Config/testthat/edition: 3 Depends: R (>= 2.10) From 4c69d2270ba491e79ed7a2d36eae000ae88dd548 Mon Sep 17 00:00:00 2001 From: Sam El-Kamand Date: Wed, 18 Dec 2024 15:48:01 +1100 Subject: [PATCH 2/8] fix: added uwot dep for pkgdown articles Resolves issue #127 --- DESCRIPTION | 1 + 1 file changed, 1 insertion(+) diff --git a/DESCRIPTION b/DESCRIPTION index 02387a9..89251ac 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -31,6 +31,7 @@ Suggests: knitr, rmarkdown, testthat (>= 3.0.0) +Config/Needs/website: uwot Config/testthat/edition: 3 Depends: R (>= 2.10) From d636d2246b1746357565ff1eff2423b3b7b83778 Mon Sep 17 00:00:00 2001 From: Sam El-Kamand Date: Wed, 18 Dec 2024 15:50:53 +1100 Subject: [PATCH 3/8] fix: stopped beautify double-bracket bug Resolves issue #124 --- R/gg1d.R | 26 +++++++++++++------------- tests/testthat/test-beautify.R | 3 ++- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/R/gg1d.R b/R/gg1d.R index 6d015af..67d3971 100644 --- a/R/gg1d.R +++ b/R/gg1d.R @@ -725,19 +725,19 @@ beautify <- function(string, autodetect_units = TRUE) { # Autodetect units (and move to brackets) if (autodetect_units) { - string <- sub("\\bm\\b", "(m)", string) - string <- sub("\\bmm\\b", "(mm)", string) - string <- sub("\\cm\\b", "(cm)", string) - string <- sub("\\km\\b", "(km)", string) - string <- sub("\\bg\\b", "(g)", string) - string <- sub("\\bkg\\b", "(kg)", string) - string <- sub("\\bmg\\b", "(mm)", string) - string <- sub("\\boz\\b", "(oz)", string) - string <- sub("\\blb\\b", "(lb)", string) - string <- sub("\\bin\\b", "(in)", string) - string <- sub("\\bft\\b", "(ft)", string) - string <- sub("\\byd\\b", "(yd)", string) - string <- sub("\\bmi\\b", "(mi)", string) + string <- sub("\\sm(\\s|$)", " (m)", string) + string <- sub("\\smm(\\s|$)", " (mm)", string) + string <- sub("\\sm(\\s|$)", " (cm)", string) + string <- sub("\\sm(\\s|$)", " (km)", string) + string <- sub("\\sg(\\s|$)", " (g)", string) + string <- sub("\\skg(\\s|$)", " (kg)", string) + string <- sub("\\smg(\\s|$)", " (mm)", string) + string <- sub("\\soz(\\s|$)", " (oz)", string) + string <- sub("\\slb(\\s|$)", " (lb)", string) + string <- sub("\\sin(\\s|$)", " (in)", string) + string <- sub("\\sft(\\s|$)", " (ft)", string) + string <- sub("\\syd(\\s|$)", " (yd)", string) + string <- sub("\\smi(\\s|$)", " (mi)", string) } diff --git a/tests/testthat/test-beautify.R b/tests/testthat/test-beautify.R index f179ec1..28023b1 100644 --- a/tests/testthat/test-beautify.R +++ b/tests/testthat/test-beautify.R @@ -8,7 +8,8 @@ test_that("beautify works as expected", { "flipper_length_mm" = "Flipper Length (mm)", "body_mass_g" = "Body Mass (g)", "kgtest_kg" = "Kgtest (kg)", - "sex" = "Sex" + "sex" = "Sex", + "Length (mm)" = "Length (mm)" ) expect_equal(examples, beautify(names(examples)), ignore_attr = TRUE) From c01d88f99e5cec4c79205b8f6cf5dd7b1d3e28e0 Mon Sep 17 00:00:00 2001 From: Sam El-Kamand Date: Wed, 18 Dec 2024 15:52:53 +1100 Subject: [PATCH 4/8] docs: updated gg1d logo Resolves issue #123 --- README.Rmd | 2 +- README.md | 2 +- man/figures/logo.png | Bin 54659 -> 7837 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.Rmd b/README.Rmd index 81d00cd..22d4c72 100644 --- a/README.Rmd +++ b/README.Rmd @@ -13,7 +13,7 @@ knitr::opts_chunk$set( ) ``` -# gg1d gg1d website +# gg1d gg1d website [![R-CMD-check](https://github.com/selkamand/gg1d/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/selkamand/gg1d/actions/workflows/R-CMD-check.yaml) diff --git a/README.md b/README.md index ba1123c..d220345 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# gg1d gg1d website +# gg1d gg1d website diff --git a/man/figures/logo.png b/man/figures/logo.png index db6b4e38aa2f5088ebe63130b7d975ea4438d493..8ff3022dc3b4718c965b709d55c7cd86ee310be4 100644 GIT binary patch literal 7837 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 N002ovPDHLkV1iim6_)@2 From 04cadd6c3aa5de290a6216f35de7a79dd7c13f60 Mon Sep 17 00:00:00 2001 From: Sam El-Kamand Date: Wed, 18 Dec 2024 15:54:02 +1100 Subject: [PATCH 5/8] docs: added cran badge Resolves issue #116 --- README.Rmd | 1 + README.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/README.Rmd b/README.Rmd index 22d4c72..8282529 100644 --- a/README.Rmd +++ b/README.Rmd @@ -16,6 +16,7 @@ knitr::opts_chunk$set( # gg1d gg1d website +[![CRAN status](https://www.r-pkg.org/badges/version/gg1d)](https://CRAN.R-project.org/package=gg1d) [![R-CMD-check](https://github.com/selkamand/gg1d/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/selkamand/gg1d/actions/workflows/R-CMD-check.yaml) [![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) [![Codecov test coverage](https://codecov.io/gh/selkamand/gg1d/branch/main/graph/badge.svg)](https://app.codecov.io/gh/selkamand/gg1d?branch=main) diff --git a/README.md b/README.md index d220345..3a91558 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ +[![CRAN +status](https://www.r-pkg.org/badges/version/gg1d)](https://CRAN.R-project.org/package=gg1d) [![R-CMD-check](https://github.com/selkamand/gg1d/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/selkamand/gg1d/actions/workflows/R-CMD-check.yaml) [![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) From 7dcee662a8f36c76fe94e715b318c0e573793b52 Mon Sep 17 00:00:00 2001 From: Sam El-Kamand Date: Wed, 18 Dec 2024 16:08:47 +1100 Subject: [PATCH 6/8] fix: ignore_column_regex now supports NULL Resolves issue #121 --- R/gg1d.R | 11 +++++++---- man/column_info_table.Rd | 2 +- man/gg1d.Rd | 2 +- tests/testthat/test-gg1d.R | 12 ++++++++++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/R/gg1d.R b/R/gg1d.R index 67d3971..e68913d 100644 --- a/R/gg1d.R +++ b/R/gg1d.R @@ -34,7 +34,7 @@ utils::globalVariables(".data") #' @param max_plottable_cols maximum number of columns that can be plotted (default: 15) (number) #' @param cols_to_plot names of columns in \strong{data} that should be plotted. By default plots all valid columns (character) #' @param tooltip_column_suffix the suffix added to a column name that indicates column should be used as a tooltip (string) -#' @param ignore_column_regex a regex string that, if matches a column name, will cause that column to be exclude from plotting (string) (default: "_ignore$") +#' @param ignore_column_regex a regex string that, if matches a column name, will cause that column to be excluded from plotting (string). If NULL no regex check will be performed. (default: "_ignore$") #' @param convert_binary_numeric_to_factor If a numeric column conatins only values 0, 1, & NA, then automatically convert to a factor. #' @param options a list of additional visual parameters created by calling [gg1d_options()]. See \code{\link{gg1d_options}} for details. #' @@ -93,7 +93,7 @@ gg1d <- function( assertions::assert_flag(limit_plots) assertions::assert_flag(desc) assertions::assert_string(tooltip_column_suffix) - assertions::assert_string(ignore_column_regex) + if(!is.null(ignore_column_regex)) assertions::assert_string(ignore_column_regex) assertions::assert_class(options, "gg1d_options", msg = "The options argument must be created using {.code gg1d_options()}") assertions::assert_number(max_plottable_cols) assertions::assert_greater_than(max_plottable_cols, 0) @@ -480,11 +480,14 @@ column_info_table <- function(data, maxlevels = 6, col_id = NULL, cols_to_plot, # 3) The`cols_to_plot` variable is suppplied and column names are NOT in the list of cols_to_plot # 4) Their colnames match the _ignore suffix lgl_too_many_levels <- df_column_info$coltype == "categorical" & df_column_info$ndistinct > maxlevels + df_column_info[["plottable"]] <- !lgl_too_many_levels & !df_column_info$coltype %in% c("invalid", "id", "tooltip") & - (is.null(cols_to_plot) | df_column_info$colnames %in% c(cols_to_plot)) & - (!grepl(x = df_column_info$colnames, pattern = ignore_column_regex)) + (is.null(cols_to_plot) | df_column_info$colnames %in% c(cols_to_plot)) + # Only check colnames_match ignore_column_regex suffix if not NULL + if(!is.null(ignore_column_regex)) + df_column_info[["plottable"]] <- df_column_info[["plottable"]] & (!grepl(x = df_column_info$colnames, pattern = ignore_column_regex)) if (sum(lgl_too_many_levels) > 0) { char_cols_with_too_many_levels <- df_column_info$colnames[lgl_too_many_levels] diff --git a/man/column_info_table.Rd b/man/column_info_table.Rd index c59a526..9e8350f 100644 --- a/man/column_info_table.Rd +++ b/man/column_info_table.Rd @@ -28,7 +28,7 @@ column_info_table( \item{tooltip_column_suffix}{the suffix added to a column name that indicates column should be used as a tooltip (string)} -\item{ignore_column_regex}{a regex string that, if matches a column name, will cause that column to be exclude from plotting (string) (default: "_ignore$")} +\item{ignore_column_regex}{a regex string that, if matches a column name, will cause that column to be excluded from plotting (string). If NULL no regex check will be performed. (default: "_ignore$")} \item{palettes}{A list of named vectors. List names correspond to \strong{data} column names (categorical only). Vector names to levels of columns. Vector values are colours, the vector names are used to map values in data to a colour.} diff --git a/man/gg1d.Rd b/man/gg1d.Rd index cae9979..1587c45 100644 --- a/man/gg1d.Rd +++ b/man/gg1d.Rd @@ -71,7 +71,7 @@ Options are \code{alphabetical} or \code{frequency}} \item{tooltip_column_suffix}{the suffix added to a column name that indicates column should be used as a tooltip (string)} -\item{ignore_column_regex}{a regex string that, if matches a column name, will cause that column to be exclude from plotting (string) (default: "_ignore$")} +\item{ignore_column_regex}{a regex string that, if matches a column name, will cause that column to be excluded from plotting (string). If NULL no regex check will be performed. (default: "_ignore$")} \item{convert_binary_numeric_to_factor}{If a numeric column conatins only values 0, 1, & NA, then automatically convert to a factor.} diff --git a/tests/testthat/test-gg1d.R b/tests/testthat/test-gg1d.R index 61089e0..b567554 100644 --- a/tests/testthat/test-gg1d.R +++ b/tests/testthat/test-gg1d.R @@ -76,6 +76,18 @@ test_that("gg1d applies ignore_column_regex", { expect_false("IgnoreMe_ignore" %in% result$colnames[result$plottable]) }) +test_that("gg1d does not check any regex when ignore_column_regex = NULL", { + data <- mock_data + colnames(data)[2] <- "Do_NOT_IgnoreMe_ignore" + + # Runs without error + expect_no_error(gg1d(data = data, ignore_column_regex = NULL, return = "column_info", verbose = FALSE)) + + # Gets the expected result + result <- gg1d(data = data, ignore_column_regex = NULL, return = "column_info", verbose = FALSE) + expect_true("Do_NOT_IgnoreMe_ignore" %in% result$colnames[result$plottable]) +}) + test_that("gg1d limits the number of plottable columns", { data <- mock_data for (i in 1:20) { From 2c802e920f0611a5f3f242597b58f85aaef31b2a Mon Sep 17 00:00:00 2001 From: Sam El-Kamand Date: Wed, 18 Dec 2024 16:13:01 +1100 Subject: [PATCH 7/8] fix: orientation of categorical axis titles when y_axis_position = 'right' they used to switch to vertical orientation. Resolves #122 --- R/gg1d.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/gg1d.R b/R/gg1d.R index e68913d..95741ba 100644 --- a/R/gg1d.R +++ b/R/gg1d.R @@ -595,6 +595,7 @@ theme_categorical <- function(fontsize_y_title = 12, show_legend = TRUE, show_le axis.text.x = element_blank(), axis.title.x = element_blank(), axis.title.y = element_text(size = fontsize_y_title, angle = 0), + axis.title.y.right = element_text(size = fontsize_y_title, angle = 0), legend.title = if (show_legend_titles) element_text(size = legend_title_size, face = "bold", hjust = 0) else element_blank(), legend.justification = c(0, 0.5), legend.margin = ggplot2::margin(0, 0, 0, 0), From d4a115a5788765d567c5dd33f70359b752f87a96 Mon Sep 17 00:00:00 2001 From: Sam El-Kamand Date: Wed, 18 Dec 2024 16:30:10 +1100 Subject: [PATCH 8/8] fix: added additional article dependencies datarium and palmerpenguins. Resolves #129 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 89251ac..30ca9b0 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -31,7 +31,7 @@ Suggests: knitr, rmarkdown, testthat (>= 3.0.0) -Config/Needs/website: uwot +Config/Needs/website: uwot, datarium, palmerpenguins Config/testthat/edition: 3 Depends: R (>= 2.10)