1
|
|
#' Produce a table and plot
|
2
|
|
#'
|
3
|
|
#' Wraps \code{\link{or_plot}}, \code{\link{hr_plot}}, and
|
4
|
|
#' \code{\link{coefficient_plot}} and sends to the appropriate method depending
|
5
|
|
#' on the dependent variable type.
|
6
|
|
#' @param .data Data frame.
|
7
|
|
#' @param dependent Character vector of length 1.
|
8
|
|
#' @param explanatory Character vector of any length: name(s) of explanatory
|
9
|
|
#' variables.
|
10
|
|
#' @param ... Pass arguments \code{\link{or_plot}}, \code{\link{hr_plot}}, or
|
11
|
|
#' \code{\link{coefficient_plot}}
|
12
|
|
#'
|
13
|
|
#' @return A table and a plot using \code{\link{ggplot2}}
|
14
|
|
#' @export
|
15
|
|
#' @family finalfit plot functions
|
16
|
|
#' @examples
|
17
|
|
#' # Coefficient plot
|
18
|
|
#' explanatory = c("age.factor", "sex.factor", "obstruct.factor", "perfor.factor")
|
19
|
|
#' dependent = "nodes"
|
20
|
|
#' colon_s %>%
|
21
|
|
#' ff_plot(dependent, explanatory)
|
22
|
|
#'
|
23
|
|
#' # Odds ratio plot
|
24
|
|
#' dependent = "mort_5yr"
|
25
|
|
#' colon_s %>%
|
26
|
|
#' ff_plot(dependent, explanatory)
|
27
|
|
#'
|
28
|
|
#' # Hazard ratio plot
|
29
|
|
#' dependent = "Surv(time, status)"
|
30
|
|
#' colon_s %>%
|
31
|
|
#' ff_plot(dependent, explanatory, dependent_label = "Survival")
|
32
|
|
ff_plot <- function(.data, dependent, explanatory, ...){
|
33
|
1
|
if(is.data.frame(.data)==FALSE) stop(".data is not dataframe")
|
34
|
1
|
if(is.null(explanatory)) stop("No explanatory variable(s) provided")
|
35
|
1
|
if(is.null(dependent)) stop("No dependent variable provided")
|
36
|
|
|
37
|
|
# Args
|
38
|
1
|
args = list(.data, dependent, explanatory, ...)
|
39
|
|
|
40
|
|
# What is dependent variable
|
41
|
1
|
d_variable = .data[,names(.data) %in% dependent]
|
42
|
1
|
if(is.survival(dependent)){
|
43
|
1
|
d_type = "survival"
|
44
|
|
}else{
|
45
|
1
|
d_type = variable_type(d_variable)
|
46
|
|
}
|
47
|
|
# Send to method
|
48
|
1
|
if (d_type == "survival"){
|
49
|
1
|
do.call(hr_plot, args)
|
50
|
1
|
} else if (d_type == "factor" || d_type == "character" || d_type == "logical"){
|
51
|
1
|
do.call(or_plot, args)
|
52
|
1
|
} else if (d_type == "numeric"){
|
53
|
1
|
do.call(coefficient_plot, args)
|
54
|
|
} else {
|
55
|
0
|
stop("Plotting not support for this dependent variable type")
|
56
|
|
}
|
57
|
|
}
|
58
|
|
|
59
|
|
#' @rdname ff_plot
|
60
|
|
#' @export
|
61
|
|
finalfit_plot = ff_plot
|