From c6e1366a11f30a93f2ed5c10020785741c2ae0c8 Mon Sep 17 00:00:00 2001 From: "Ruben C. Arslan" Date: Fri, 23 Mar 2018 10:45:03 +0100 Subject: [PATCH 1/2] - add method for complete for various imputation pkgs - add method for n_imputations --- R/complete_method.R | 34 ++++++++++++++++++++++++++++++++++ R/mitmlComplete.R | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 R/complete_method.R diff --git a/R/complete_method.R b/R/complete_method.R new file mode 100644 index 0000000..a583c16 --- /dev/null +++ b/R/complete_method.R @@ -0,0 +1,34 @@ + +n_imputations.mitml <- function(imps) { + imps$iter$m +} + +n_imputations.mitml.list <- function(imps) { + length(imps) +} + +n_imputations.mids <- function(imps) { + imps$m +} +n_imputations.amelia <- function(imps) { + length(imps$imputations) +} +n_imputations = function(imps) { UseMethod("n_imputations") } + +complete.mitml.list <- function(imps, action = "long") { + if (action == "long") { + dplyr::bind_rows(imps, .id = "m") + } else if (is.numeric(action)) { + imps[[action]] + } +} + +complete.amelia <- function(imps, action = "long") { + if (action == "long") { + dplyr::bind_rows(imps$imputations, .id = "m") + } else if (is.numeric(action)) { + imps$imputations[[action]] + } +} +complete.mids <- mice::complete +complete <- function(...) { UseMethod("complete") } diff --git a/R/mitmlComplete.R b/R/mitmlComplete.R index 7770fb9..6c6e9ca 100644 --- a/R/mitmlComplete.R +++ b/R/mitmlComplete.R @@ -82,3 +82,5 @@ mitmlComplete <- function(x, print="all", force.list=FALSE){ x } + +complete.mitml <- mitmlComplete From 5567bb8419b3909299f50b2e571500c2a423bca9 Mon Sep 17 00:00:00 2001 From: "Ruben C. Arslan" Date: Fri, 23 Mar 2018 10:45:13 +0100 Subject: [PATCH 2/2] add dplyr helpers for mitml list --- DESCRIPTION | 2 +- R/dplyr_helpers.R | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 R/dplyr_helpers.R diff --git a/DESCRIPTION b/DESCRIPTION index 3845b73..eca1d6b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -6,7 +6,7 @@ Date: 2018-02-08 Author: Simon Grund [aut,cre], Alexander Robitzsch [aut], Oliver Luedtke [aut] Maintainer: Simon Grund BugReports: https://github.com/simongrund1/mitml/issues -Imports: pan, jomo, haven, grDevices, graphics, stats, utils +Imports: pan, jomo, haven, grDevices, graphics, stats, utils, dplyr Suggests: mice, miceadds, Amelia, lme4, nlme, geepack, survival, knitr, rmarkdown LazyData: true LazyLoad: true diff --git a/R/dplyr_helpers.R b/R/dplyr_helpers.R new file mode 100644 index 0000000..4d12ccf --- /dev/null +++ b/R/dplyr_helpers.R @@ -0,0 +1,56 @@ + +mutate.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::mutate, ...) + class(r) = class(.data) + r +} + +mutate_at.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::mutate_at, ...) + class(r) = class(.data) + r +} + +mutate_if.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::mutate_if, ...) + class(r) = class(.data) + r +} + +tbl_df.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::tbl_df, ...) + class(r) = class(.data) + r +} + +select.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::select, ...) + class(r) = class(.data) + r +} + +arrange.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::arrange, ...) + class(r) = class(.data) + r +} + +group_by.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::group_by, ...) + class(r) = class(.data) + r +} + + +ungroup.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::ungroup, ...) + class(r) = class(.data) + r +} + +summarise.mitml.list <- function(.data, ...) { + r <- lapply(.data, FUN = dplyr::summarise, ...) + class(r) = class(.data) + r +} +