R/marg-table.R

Defines functions margTableF

margTableF <- function(pred_diff, marg_list, at, digits, ci, hdi_interval, centrality, at_means, i){
  
  centralityF <- eval(parse(text=centrality))
  
  if(!is.null(at)){

    atVars <- names(expand.grid(at))

    if(hdi_interval==T){

    diffTableTemp <- pred_diff %>%
      .[, .(marg_effect = marg_list$marg[[i]],
            start_val   = marg_list$start[[i]],
            end_val     = marg_list$end[[i]],
            centrality  = round(centralityF(diff), digits=digits),
            lower       = round(bayestestR::hdi(diff, ci=ci)$CI_low, digits=digits),
            upper       = round(bayestestR::hdi(diff, ci=ci)$CI_high, digits=digits)), by=atVars]

    } else{

      diffTableTemp <- pred_diff %>%
        .[, .(marg_effect = marg_list$marg[[i]],
              start_val   = marg_list$start[[i]],
              end_val     = marg_list$end[[i]],
              centrality  = round(centralityF(diff), digits=digits),
              lower       = round(quantile(diff, probs=(1-ci)/2), digits=digits),
              upper       = round(quantile(diff, probs=1-(1-ci)/2), digits=digits)), by=atVars]

    }

  } else{

    if(hdi_interval==T){

      diffTableTemp <- data.table::data.table(marg_effect = marg_list$marg[[i]],
                                  start_val   = marg_list$start[[i]],
                                  end_val     = marg_list$end[[i]],
                                  centrality  = round(centralityF(pred_diff$diff), digits=digits),
                                  lower       = round(bayestestR::hdi(pred_diff$diff, ci=ci)$CI_low, digits=digits),
                                  upper       = round(bayestestR::hdi(pred_diff$diff, ci=ci)$CI_high, digits=digits))

    } else{

      diffTableTemp <- data.table::data.table(marg_effect = marg_list$marg[[i]],
                                  start_val   = marg_list$start[[i]],
                                  end_val     = marg_list$end[[i]],
                                  centrality  = round(centralityF(pred_diff$diff), digits=digits),
                                  lower       = round(quantile(pred_diff$diff, probs=(1-ci)/2), digits=digits),
                                  upper       = round(quantile(pred_diff$diff, probs=1-(1-ci)/2), digits=digits))

    }

  }
  
  names(diffTableTemp)[names(diffTableTemp)=='centrality'] <- centrality

  return(diffTableTemp)

}

Try the bayesMeanScale package in your browser

Any scripts or data that you put into this service are public.

bayesMeanScale documentation built on April 4, 2025, 2:01 a.m.