From 19638e5a290b10c4c591ab6587f35daa28d62436 Mon Sep 17 00:00:00 2001 From: Shu Fai Cheung Date: Thu, 5 Oct 2023 22:37:18 +0800 Subject: [PATCH 1/6] Fix influence plots for reruns with missing stats Tests passed. --- R/influence_plot.R | 15 ++++++++ tests/testthat/Rplots.pdf | Bin 0 -> 14975 bytes tests/testthat/test-nonconvergence_plot.R | 44 ++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 tests/testthat/Rplots.pdf create mode 100644 tests/testthat/test-nonconvergence_plot.R diff --git a/R/influence_plot.R b/R/influence_plot.R index 1f2b3dd..60fd415 100644 --- a/R/influence_plot.R +++ b/R/influence_plot.R @@ -261,6 +261,10 @@ gcd_plot <- function(influence_out, } else { gcd_label <- "Generalized Cook's Distance" } + dat <- dat[!is.na(dat$gcd), ] + if (nrow(dat) == 0) { + stop("All cases have gCD missing.") + } p <- ggplot2::ggplot(dat, ggplot2::aes(.data$row_id, .data$gcd)) p <- p + do.call(ggplot2::geom_point, point_aes) p <- p + ggplot2::labs(title = gcd_label) @@ -432,6 +436,11 @@ gcd_gof_plot <- function(influence_out, gcd_label <- "Generalized Cook's Distance" change_label <- "Change in Fit Measure" } + dat <- dat[!is.na(dat$gcd) & + !is.na(dat$fm), ] + if (nrow(dat) == 0) { + stop("No cases have non-missing values.") + } point_aes <- utils::modifyList(list(), point_aes) @@ -564,6 +573,12 @@ gcd_gof_md_plot <- function(influence_out, gcd_label_short <- "gCD" change_label <- "Change in Fit Measure" } + dat <- dat[!is.na(dat$gcd) & + !is.na(dat$fm) & + !is.na(dat$md), ] + if (nrow(dat) == 0) { + stop("No cases have valid values.") + } point_aes <- utils::modifyList(list(shape = 21, alpha = .50, diff --git a/tests/testthat/Rplots.pdf b/tests/testthat/Rplots.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4ee28b0d21b3659c618ae7b5d66354e3418be5a2 GIT binary patch literal 14975 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 Date: Thu, 5 Oct 2023 22:50:59 +0800 Subject: [PATCH 2/6] Make index_plot() to work with NAs Tests passed. --- R/generic_index_plot.R | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/R/generic_index_plot.R b/R/generic_index_plot.R index efb0c23..9d14e05 100644 --- a/R/generic_index_plot.R +++ b/R/generic_index_plot.R @@ -188,6 +188,11 @@ index_plot <- function(object, object <- object[, column, drop = TRUE] } + object <- object[!is.na(object)] + if (length(object) == 0) { + stop("No cases have valid values.") + } + if (absolute) { object <- abs(object) } From 6db620d6a7aa57aafcc648cf38fd0c82980de1a8 Mon Sep 17 00:00:00 2001 From: Shu Fai Cheung Date: Thu, 5 Oct 2023 22:59:37 +0800 Subject: [PATCH 3/6] Make est_change_*_plot() to work with NAs Tests passed. --- R/est_change_plot.R | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/R/est_change_plot.R b/R/est_change_plot.R index cd0839e..bed3e35 100644 --- a/R/est_change_plot.R +++ b/R/est_change_plot.R @@ -256,6 +256,10 @@ est_change_plot <- function(change, } x0$gcd <- NULL x0$row_id <- as.integer(seq_len(nrow(change))) + x0 <- stats::na.omit(x0) + if (nrow(x0) == 0) { + stop("No cases have valid values.") + } p <- ggplot2::ggplot(data = x0, ggplot2::aes(x = .data[["row_id"]], y = .data[["change"]])) p <- p + do.call(ggplot2::geom_point, point_aes) @@ -379,6 +383,10 @@ est_change_gcd_plot <- function(change, if (!missing(parameters)) { x0 <- x0[x0$param %in% parameters, ] } + x0 <- stats::na.omit(x0) + if (nrow(x0) == 0) { + stop("No cases have valid values.") + } p <- ggplot2::ggplot(data = x0, ggplot2::aes(x = .data[[gcd_name]], y = .data[["change"]])) From 2355274a039c6199a4392379ed23c83a729fe10a Mon Sep 17 00:00:00 2001 From: Shu Fai Cheung Date: Thu, 5 Oct 2023 22:59:52 +0800 Subject: [PATCH 4/6] Tests for plots with NAs Tests passed. --- tests/testthat/test-nonconvergence_plot.R | 28 +++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/tests/testthat/test-nonconvergence_plot.R b/tests/testthat/test-nonconvergence_plot.R index ea6327e..569e85c 100644 --- a/tests/testthat/test-nonconvergence_plot.R +++ b/tests/testthat/test-nonconvergence_plot.R @@ -22,23 +22,43 @@ out <- influence_stat(fit_rerun) p <- gcd_plot(out) test_that("NA in rerun", { expect_equal(nrow(p$data), 19) - expect_no_warning(print(p)) + # expect_no_warning(print(p)) }) p <- md_plot(out) test_that("NA in rerun", { expect_equal(nrow(p$data), 20) - expect_no_warning(print(p)) + # expect_no_warning(print(p)) }) p <- gcd_gof_plot(out, "chisq") test_that("NA in rerun", { expect_equal(nrow(p$data), 19) - expect_no_warning(print(p)) + # expect_no_warning(print(p)) }) p <- gcd_gof_md_plot(out, "chisq", circle_size = 35) test_that("NA in rerun", { expect_equal(nrow(p$data), 19) - expect_no_warning(print(p)) + # expect_no_warning(print(p)) + }) + +out <- est_change(fit_rerun) + +p <- est_change_plot(out) +test_that("NA in rerun", { + expect_equal(nrow(p$data), 247) + # expect_no_warning(print(p)) + }) + +p <- est_change_gcd_plot(out) +test_that("NA in rerun", { + expect_equal(nrow(p$data), 247) + # expect_no_warning(print(p)) + }) + +p <- index_plot(out, "f1=~x3") +test_that("NA in rerun", { + expect_equal(nrow(p$data), 19) + # expect_no_warning(print(p)) }) From 84763218f42247bb00e369cfaba4c291bf1bf8b0 Mon Sep 17 00:00:00 2001 From: Shu Fai Cheung Date: Thu, 5 Oct 2023 23:07:41 +0800 Subject: [PATCH 5/6] Delete Rplots.pdf --- tests/testthat/Rplots.pdf | Bin 14975 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/testthat/Rplots.pdf diff --git a/tests/testthat/Rplots.pdf b/tests/testthat/Rplots.pdf deleted file mode 100644 index 4ee28b0d21b3659c618ae7b5d66354e3418be5a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14975 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 Date: Thu, 5 Oct 2023 23:08:49 +0800 Subject: [PATCH 6/6] Update to 0.1.5.6 --- DESCRIPTION | 2 +- NEWS.md | 4 +++- README.md | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 77a3c15..bc8124e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: semfindr Title: Influential Cases in Structural Equation Modeling -Version: 0.1.5.5 +Version: 0.1.5.6 Authors@R: c( person(given = "Shu Fai", family = "Cheung", diff --git a/NEWS.md b/NEWS.md index be00b21..bec6f8b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# semfindr 0.1.5.5 +# semfindr 0.1.5.6 - Fixed typos in the article on multiple-group models. (0.1.5.1) @@ -19,6 +19,8 @@ - Add `index_plot()` for generating an index plot for an arbitrary statistic. (0.1.5.5) +- Make plot functions to work with NAs. + (0.1.5.6) # semfindr 0.1.5 diff --git a/README.md b/README.md index e99e0d2..3c0ea66 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ [![R-CMD-check](https://github.com/sfcheung/semfindr/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/sfcheung/semfindr/actions/workflows/R-CMD-check.yaml) -(Version 0.1.5.5, updated on 2023-10-05, [release history](https://sfcheung.github.io/semfindr/news/index.html)) +(Version 0.1.5.6, updated on 2023-10-05, [release history](https://sfcheung.github.io/semfindr/news/index.html)) # semfindr: Finding influential cases in SEM