-
Notifications
You must be signed in to change notification settings - Fork 303
/
gamlss-tidiers.R
45 lines (42 loc) · 1.09 KB
/
gamlss-tidiers.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#' @templateVar class gamlss
#' @template title_desc_tidy
#'
#' @param x A `gamlss` object returned from [gamlss::gamlss()].
#' @template param_unused_dots
#'
#' @evalRd return_tidy(
#' parameter = "Type of coefficient being estimated: `mu`, `sigma`,
#' `nu`, or `tau`.",
#' "term",
#' "estimate",
#' "std.error",
#' "statistic",
#' "p.value"
#' )
#'
#' @examples
#'
#' library(gamlss)
#'
#' g <- gamlss(
#' y ~ pb(x),
#' sigma.fo = ~ pb(x),
#' family = BCT,
#' data = abdom,
#' method = mixed(1, 20)
#' )
#'
#' tidy(g)
#'
#' @export
tidy.gamlss <- function(x, ...) {
# use capture.output to prevent summary from being printed to screen
utils::capture.output(s <- summary(x, type = "qr"))
# tidy the coefficients much as would be done for a linear model
nn <- c("estimate", "std.error", "statistic", "p.value")
ret <- fix_data_frame(s, nn)
# add parameter types. This assumes each coefficient table starts
# with "(Intercept)": unclear if this is guaranteed
parameters <- x$parameters[cumsum(ret$term == "(Intercept)")]
bind_cols(parameter = parameters, ret)
}