From b7e7fe3974865f6ed1be3ac17cd1df2a136c46e3 Mon Sep 17 00:00:00 2001 From: Kyle Baron Date: Sun, 20 Oct 2024 19:05:55 -0500 Subject: [PATCH 1/2] provide a count wrapper for mrgsims output --- NAMESPACE | 1 + R/mrgsims.R | 48 +++++++++++++++++++++++++------------------- man/mrgsims_dplyr.Rd | 3 +++ 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 1430f3550..7f21b849f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -94,6 +94,7 @@ export(cmtn) export(collapse_matrix) export(collapse_omega) export(collapse_sigma) +export(count.mrgsims) export(cvec) export(data_set) export(design) diff --git a/R/mrgsims.R b/R/mrgsims.R index 3ee8a0d75..10e237eec 100644 --- a/R/mrgsims.R +++ b/R/mrgsims.R @@ -173,15 +173,15 @@ pull.mrgsims <- function(.data, ...) { dplyr::pull(as_tibble.mrgsims(.data), ...) } -##' @method filter mrgsims -##' @rdname mrgsims_dplyr -##' @export +#' @method filter mrgsims +#' @rdname mrgsims_dplyr +#' @export filter.mrgsims <- function(.data,...) { dplyr::filter(as_tibble.mrgsims(.data),...) } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export group_by.mrgsims <- function(.data,...,add=FALSE,.add=FALSE) { if(DPLYR_1_0_0) { return(dplyr::group_by(as_tibble.mrgsims(.data), ..., .add = .add)) @@ -190,50 +190,56 @@ group_by.mrgsims <- function(.data,...,add=FALSE,.add=FALSE) { } } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export distinct.mrgsims <- function(.data,...,.keep_all=FALSE) { dplyr::distinct(as_tibble.mrgsims(.data),...,.keep_all=.keep_all) } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export mutate.mrgsims <- function(.data,...) { dplyr::mutate(as_tibble.mrgsims(.data),...) } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export summarise.each <- function(.data,funs,...) { dplyr::summarise_each(as_tibble.mrgsims(.data),funs,...) } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export summarise.mrgsims <- function(.data,...) { dplyr::summarise(as_tibble.mrgsims(.data),...) } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export do.mrgsims <- function(.data,...,.dots) { dplyr::do(as_tibble.mrgsims(.data),...) } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export select.mrgsims <- function(.data,...) { dplyr::select(as_tibble.mrgsims(.data),...) } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export slice.mrgsims <- function(.data,...) { dplyr::slice(as_tibble.mrgsims(.data),...) } -##' @rdname mrgsims_dplyr -##' @export +#' @rdname mrgsims_dplyr +#' @export +count.mrgsims <- function(.data,...) { + dplyr::count(as_tibble.mrgsims(.data),...) +} + +#' @rdname mrgsims_dplyr +#' @export as_data_frame.mrgsims <- function(x,...) { as_tibble(as.data.frame(x),...) } diff --git a/man/mrgsims_dplyr.Rd b/man/mrgsims_dplyr.Rd index cac3f29d4..9fbdf4971 100644 --- a/man/mrgsims_dplyr.Rd +++ b/man/mrgsims_dplyr.Rd @@ -12,6 +12,7 @@ \alias{do.mrgsims} \alias{select.mrgsims} \alias{slice.mrgsims} +\alias{count.mrgsims} \alias{as_data_frame.mrgsims} \alias{as_tibble.mrgsims} \alias{as.tbl.mrgsims} @@ -37,6 +38,8 @@ \method{slice}{mrgsims}(.data, ...) +count.mrgsims(.data, ...) + as_data_frame.mrgsims(x, ...) \method{as_tibble}{mrgsims}(x, ...) From b1712c7472b52dba6e6c6b5a28a568c060172d09 Mon Sep 17 00:00:00 2001 From: Kyle Baron Date: Sun, 20 Oct 2024 20:38:12 -0500 Subject: [PATCH 2/2] add count method for mrgsims --- NAMESPACE | 3 ++- R/Aaaa.R | 2 +- R/mrgsims.R | 5 ++--- man/mrgsims_dplyr.Rd | 2 +- tests/testthat/test-dplyr-generics.R | 7 ++++++- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 7f21b849f..b73741ccc 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -10,6 +10,7 @@ S3method(as.matrix,ev) S3method(as_tibble,mrgsims) S3method(compiled,default) S3method(compiled,mrgmod) +S3method(count,mrgsims) S3method(cvec,character) S3method(dim,ev) S3method(distinct,mrgsims) @@ -94,7 +95,6 @@ export(cmtn) export(collapse_matrix) export(collapse_omega) export(collapse_sigma) -export(count.mrgsims) export(cvec) export(data_set) export(design) @@ -235,6 +235,7 @@ import(methods) importFrom(Rcpp,evalCpp) importFrom(dplyr,arrange) importFrom(dplyr,bind_rows) +importFrom(dplyr,count) importFrom(dplyr,distinct) importFrom(dplyr,do) importFrom(dplyr,filter) diff --git a/R/Aaaa.R b/R/Aaaa.R index 6aa58214a..4c9d91d56 100644 --- a/R/Aaaa.R +++ b/R/Aaaa.R @@ -24,7 +24,7 @@ #' @importFrom dplyr bind_rows arrange summarise summarise_at mutate_if #' @importFrom dplyr intersect select rename do slice pull #' @importFrom dplyr if_else summarise_each is.tbl select -#' @importFrom dplyr group_by ungroup n left_join +#' @importFrom dplyr group_by ungroup n left_join count #' @importFrom tidyselect vars_select everything #' @importFrom magrittr %>% #' @importFrom tibble tibble as_tibble diff --git a/R/mrgsims.R b/R/mrgsims.R index 10e237eec..330a23aca 100644 --- a/R/mrgsims.R +++ b/R/mrgsims.R @@ -234,8 +234,8 @@ slice.mrgsims <- function(.data,...) { #' @rdname mrgsims_dplyr #' @export -count.mrgsims <- function(.data,...) { - dplyr::count(as_tibble.mrgsims(.data),...) +count.mrgsims <- function(x, ...) { + dplyr::count(as_tibble.mrgsims(x), ...) } #' @rdname mrgsims_dplyr @@ -244,7 +244,6 @@ as_data_frame.mrgsims <- function(x,...) { as_tibble(as.data.frame(x),...) } - #' @param x mrgsims object. #' #' @rdname mrgsims_dplyr diff --git a/man/mrgsims_dplyr.Rd b/man/mrgsims_dplyr.Rd index 9fbdf4971..1c76ef0ac 100644 --- a/man/mrgsims_dplyr.Rd +++ b/man/mrgsims_dplyr.Rd @@ -38,7 +38,7 @@ \method{slice}{mrgsims}(.data, ...) -count.mrgsims(.data, ...) +\method{count}{mrgsims}(x, ...) as_data_frame.mrgsims(x, ...) diff --git a/tests/testthat/test-dplyr-generics.R b/tests/testthat/test-dplyr-generics.R index b9b5b05f5..f680eb9ca 100644 --- a/tests/testthat/test-dplyr-generics.R +++ b/tests/testthat/test-dplyr-generics.R @@ -1,4 +1,4 @@ -# Copyright (C) 2013 - 2020 Metrum Research Group +# Copyright (C) 2013 - 2024 Metrum Research Group # # This file is part of mrgsolve. # @@ -69,6 +69,11 @@ test_that("Pipe to slice", { expect_true(all(x$time %in% c(1,2.25))) }) +test_that("Pipe to count", { + x <- count(out, ID) + expect_is(x, "data.frame") +}) + test_that("filter_mrgsims", { x <- out %>% filter_sims(time > 30) expect_is(x, "mrgsims")