#' Summarize DIDdesign output
#' @param object An object of \code{DIDdesign} class.
#' @param estimator A vector of estimators to print. For example, \code{estimator = c("DID", "sDID")}.
#' @param ... Other parameters. Currently not supported.
#' @importFrom stats pnorm
#' @export
summary.DIDdesign <- function(object, estimator = NULL, ...) {
if (!("DIDdesign" %in% class(object))) stop("object should the output of did funciton.")
out <- object$estimates
out$statistic <- out$estimate / out$std.error
out$p_value <- 2 * pnorm(abs(out$statistic), lower.tail = FALSE)
out <- out[, c("estimator", "lead", "estimate", "std.error", "statistic", "p_value", "ci.low", "ci.high")]
if (!is.null(estimator)) {
## check
name_check <- estimator %in% c("Double-DID", "DID", "sDID", "SA-Double-DID", "SA-DID", "SA-sDID")
if (!all(name_check)) stop("Not supported estimator(s): ", estimator[!name_check])
out <- out[out$estimator %in% estimator, ]
}
# ## add weights
# weights <- c(NA, object$weights$weight_did, object$weights$weight_sdid)
# out$ddid_weights <- weights
class(out) <- c("summary.DIDdesign", class(out))
return(out)
}
#' Print
#' @export
#' @importFrom cli cat_rule
#' @param x An object of \code{summary.DIDdesign} class. This is typically an output of \code{summary.DIDdesign()} function.
#' @param ... Other parameters. Currently not supported.
print.summary.DIDdesign <- function(x, ...) {
cat_rule(left = "ATT Estimates")
print(as.data.frame(x), digits = 2)
# x_out <- data.frame(x)
# rownames(x_out) <- 1:nrow(x_out)
# print.default(x_out, digits = 3)
invisible(x)
x
}
#' Summary did_check Output
#' @importFrom dplyr %>% select
#' @param object An output of \code{did_check} function.
#' @param ... Other parameters. Currently not supported.
#' @export
summary.DIDdesign_check <- function(object, ...) {
if (!("DIDdesign_check" %in% class(object))) stop("object should the output of did_check funciton.")
tmp <- object$estimate
tmp <- tmp %>% select(
estimate = .data$estimate_orig, .data$lag, std.error = .data$std.error_orig,
.data$EqCI95_LB, .data$EqCI95_UB
)
class(tmp) <- c("summary.DIDdesign_check", class(tmp))
return(tmp)
}
#' Print
#' @export
#' @param x An output of \code{summary.DIDdesign_check} function.
#' @param ... Other parameters. Currently not supported.
#' @importFrom cli cat_rule
print.summary.DIDdesign_check <- function(x, ...) {
cat_rule(left = "Estimates for assessing parallel trends assumption")
x_out <- data.matrix(x)
rownames(x_out) <- 1:nrow(x_out)
print.default(x_out, quote = FALSE, right = TRUE, digits = 3)
invisible(x)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.