From 97e8d2b63810553182a9f4d59ecd7a76f4f04692 Mon Sep 17 00:00:00 2001 From: Malcolm Barrett Date: Sat, 19 Jan 2019 13:55:47 -0600 Subject: [PATCH 1/6] add tidy() method for model_fit objects --- DESCRIPTION | 3 +-- NAMESPACE | 1 + R/tidy.R | 22 ++++++++++++++++++++++ man/tidy.model_fit.Rd | 26 ++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 R/tidy.R create mode 100644 man/tidy.model_fit.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 56455e72a..61788129c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -29,7 +29,7 @@ Imports: tidyr, globals Roxygen: list(markdown = TRUE) -RoxygenNote: 6.1.0.9000 +RoxygenNote: 6.1.1 Suggests: testthat, knitr, @@ -39,4 +39,3 @@ Suggests: xgboost, covr, sparklyr - diff --git a/NAMESPACE b/NAMESPACE index 8ce771ce7..57d7b8425 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -119,6 +119,7 @@ export(show_call) export(surv_reg) export(svm_poly) export(svm_rbf) +export(tidy.model_fit) export(translate) export(varying) export(varying_args) diff --git a/R/tidy.R b/R/tidy.R new file mode 100644 index 000000000..98340a155 --- /dev/null +++ b/R/tidy.R @@ -0,0 +1,22 @@ +#' Turn a parsnip model object into a tidy tibble +#' +#' This method tidies the model in a parsnip model object, if it exists. +#' +#' @inheritParams generics::tidy +#' +#' @return a tibble +#' @export +#' +#' @examples +#' logistic_reg() %>% +#' set_engine("glm") %>% +#' fit(Class ~ funded_amnt + int_rate, data = lending_club) %>% +#' # tidying model object and passing arguments to broom:::tidy.glm +#' tidy(conf.int = TRUE, exponentiate = TRUE) +tidy.model_fit <- function(x, ...) { + tryCatch(generics::tidy(x$fit, ...), + error = function(error) { + cat("Error:", error$message) + } + ) +} diff --git a/man/tidy.model_fit.Rd b/man/tidy.model_fit.Rd new file mode 100644 index 000000000..8c69f44eb --- /dev/null +++ b/man/tidy.model_fit.Rd @@ -0,0 +1,26 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/tidy.R +\name{tidy.model_fit} +\alias{tidy.model_fit} +\title{Turn a parsnip model object into a tidy tibble} +\usage{ +tidy.model_fit(x, ...) +} +\arguments{ +\item{x}{An object to be converted into a tidy \code{\link[tibble:tibble]{tibble::tibble()}}.} + +\item{...}{Additional arguments to tidying method.} +} +\value{ +a tibble +} +\description{ +This method tidies the model in a parsnip model object, if it exists. +} +\examples{ +logistic_reg() \%>\% + set_engine("glm") \%>\% + fit(Class ~ funded_amnt + int_rate, data = lending_club) \%>\% + # tidying model object and passing arguments to broom:::tidy.glm + tidy(conf.int = TRUE, exponentiate = TRUE) +} From bd8c3968f6d31eee076999da9c093985f2a427f5 Mon Sep 17 00:00:00 2001 From: Malcolm Barrett Date: Sat, 19 Jan 2019 15:19:02 -0600 Subject: [PATCH 2/6] load broom in example to fix error --- R/tidy.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/tidy.R b/R/tidy.R index 98340a155..7a438f493 100644 --- a/R/tidy.R +++ b/R/tidy.R @@ -8,6 +8,8 @@ #' @export #' #' @examples +#' library(broom) +#' #' logistic_reg() %>% #' set_engine("glm") %>% #' fit(Class ~ funded_amnt + int_rate, data = lending_club) %>% From 5c0a16d1ac3d266eae8bed53cdf79893ffd89305 Mon Sep 17 00:00:00 2001 From: Malcolm Barrett Date: Sun, 20 Jan 2019 08:59:31 -0600 Subject: [PATCH 3/6] Update rlang version and rebuild tidy doc --- DESCRIPTION | 2 +- man/tidy.model_fit.Rd | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 61788129c..0f8cf494c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -18,7 +18,7 @@ Depends: R (>= 2.10) Imports: dplyr, - rlang (>= 0.3.0.1), + rlang (>= 0.3.1), purrr, utils, tibble, diff --git a/man/tidy.model_fit.Rd b/man/tidy.model_fit.Rd index 8c69f44eb..ca1cf9530 100644 --- a/man/tidy.model_fit.Rd +++ b/man/tidy.model_fit.Rd @@ -18,6 +18,8 @@ a tibble This method tidies the model in a parsnip model object, if it exists. } \examples{ +library(broom) + logistic_reg() \%>\% set_engine("glm") \%>\% fit(Class ~ funded_amnt + int_rate, data = lending_club) \%>\% From b84e731f5f4b620cc8dd861b162b61e21fc2a75d Mon Sep 17 00:00:00 2001 From: Malcolm Barrett Date: Sun, 20 Jan 2019 10:45:54 -0600 Subject: [PATCH 4/6] remove trycatch --- R/tidy.R | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/R/tidy.R b/R/tidy.R index 7a438f493..660c07b0f 100644 --- a/R/tidy.R +++ b/R/tidy.R @@ -15,10 +15,4 @@ #' fit(Class ~ funded_amnt + int_rate, data = lending_club) %>% #' # tidying model object and passing arguments to broom:::tidy.glm #' tidy(conf.int = TRUE, exponentiate = TRUE) -tidy.model_fit <- function(x, ...) { - tryCatch(generics::tidy(x$fit, ...), - error = function(error) { - cat("Error:", error$message) - } - ) -} +tidy.model_fit <- function(x, ...) generics::tidy(x$fit, ...) From 7eafd3fc52fd40a1d0bb4ba8919695bfae126529 Mon Sep 17 00:00:00 2001 From: Malcolm Barrett Date: Thu, 28 Feb 2019 12:18:38 -0800 Subject: [PATCH 5/6] remove conf.int to avoid MASS dependency --- R/tidy.R | 2 +- man/tidy.model_fit.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/tidy.R b/R/tidy.R index 660c07b0f..fd4e1629b 100644 --- a/R/tidy.R +++ b/R/tidy.R @@ -14,5 +14,5 @@ #' set_engine("glm") %>% #' fit(Class ~ funded_amnt + int_rate, data = lending_club) %>% #' # tidying model object and passing arguments to broom:::tidy.glm -#' tidy(conf.int = TRUE, exponentiate = TRUE) +#' tidy(exponentiate = TRUE) tidy.model_fit <- function(x, ...) generics::tidy(x$fit, ...) diff --git a/man/tidy.model_fit.Rd b/man/tidy.model_fit.Rd index ca1cf9530..6f7dfa422 100644 --- a/man/tidy.model_fit.Rd +++ b/man/tidy.model_fit.Rd @@ -24,5 +24,5 @@ logistic_reg() \%>\% set_engine("glm") \%>\% fit(Class ~ funded_amnt + int_rate, data = lending_club) \%>\% # tidying model object and passing arguments to broom:::tidy.glm - tidy(conf.int = TRUE, exponentiate = TRUE) + tidy(exponentiate = TRUE) } From 3dd574780cd646fdc17d12186fb1a0fdcd331c5a Mon Sep 17 00:00:00 2001 From: Malcolm Barrett Date: Thu, 28 Feb 2019 13:00:24 -0800 Subject: [PATCH 6/6] remove example to avoid broom dependency --- R/tidy.R | 9 --------- man/tidy.model_fit.Rd | 9 --------- 2 files changed, 18 deletions(-) diff --git a/R/tidy.R b/R/tidy.R index fd4e1629b..ce5d4df91 100644 --- a/R/tidy.R +++ b/R/tidy.R @@ -6,13 +6,4 @@ #' #' @return a tibble #' @export -#' -#' @examples -#' library(broom) -#' -#' logistic_reg() %>% -#' set_engine("glm") %>% -#' fit(Class ~ funded_amnt + int_rate, data = lending_club) %>% -#' # tidying model object and passing arguments to broom:::tidy.glm -#' tidy(exponentiate = TRUE) tidy.model_fit <- function(x, ...) generics::tidy(x$fit, ...) diff --git a/man/tidy.model_fit.Rd b/man/tidy.model_fit.Rd index 6f7dfa422..a2c8564b2 100644 --- a/man/tidy.model_fit.Rd +++ b/man/tidy.model_fit.Rd @@ -17,12 +17,3 @@ a tibble \description{ This method tidies the model in a parsnip model object, if it exists. } -\examples{ -library(broom) - -logistic_reg() \%>\% - set_engine("glm") \%>\% - fit(Class ~ funded_amnt + int_rate, data = lending_club) \%>\% - # tidying model object and passing arguments to broom:::tidy.glm - tidy(exponentiate = TRUE) -}