No meu entendimento, algumas classes de objetos personalizados têm uma plot
função personalizada, que permite usar plot(object_name)
e obter o gráfico que você (provavelmente) está interessado.
Por exemplo, posso obter da página de ajuda pmcalibration::pmcalibration
um código como o abaixo
library(pmcalibration)
library(survival)
data('transplant', package="survival")
transplant <- na.omit(transplant)
transplant = subset(transplant, futime > 0)
transplant$ltx <- as.numeric(transplant$event == "ltx")
cph <- coxph(Surv(futime, ltx) ~ age + sex + abo + year, data = transplant)
time <- 100
newd <- transplant; newd$futime <- time; newd$ltx <- 1
p <- 1 - exp(-predict(cph, type = "expected", newdata=newd))
y <- with(transplant, Surv(futime, ltx))
cal <- pmcalibration(y = y, p = p, smooth = "rcs", nk=5, ci = "pw", time = time)
class(cal)
[1] "pmcalibration"
plot(cal)
Conforme mostrado, cal
tem a classe "pmcalibration", e é suficiente fornecê-la como argumento para a plot
função para obter o gráfico de calibração que você certamente está interessado em obter após usar a pmcalibration
função
Minha pergunta é: como posso recuperar o que a plot
função fez aqui? Como posso obter quais valores e variáveis dentro cal
foram usados para criar o gráfico? O que está acontecendo por baixo?
Para este exemplo específico, posso ver que uma dica pode ser dada pela existência da seção cal$plot
; no entanto, ainda não consigo entender quais variáveis foram usadas e quais funções foram aplicadas aos valores armazenados ali para finalmente poder criar o gráfico.
Você pode usar
sloop::s3_dispatch
para ver qual método é usado,e com uma boa estimativa do pacote, inspecione o código-fonte (provavelmente não exportado).