Вывод регрессии Кокса в xtable - выбор строк / столбцов и добавление доверительного интервала - PullRequest
6 голосов
/ 16 октября 2011

Я не хочу экспортировать вывод из регрессии Кокса в таблицу, которую я затем смогу поместить в мою статью. Я думаю, что лучший способ это сделать с помощью xtable:

library(survival)
data(pbc)
fit.pbc <- coxph(Surv(time, status==2) ~ age + edema + log(bili) + 
    log(protime) + log(albumin), data=pbc)

summary(fit.pbc)
library(xtable)
xtable(fit.pbc)

Теперь я хочу сделать следующее:

  • Добавить доверительный интервал (ДИ) 95%
  • Выберите определенные строки, например, возраст и журнал (время выполнения)
  • Округление exp (B) и CI до трех десятичных знаков
  • Удалите столбец с z & обычный коэффициент

Заранее спасибо!

Ответы [ 2 ]

9 голосов
/ 16 октября 2011

Я бы подошел к этому, сначала посмотрев, как пакет survival создает таблицу, которую он печатает по умолчанию.

Чтобы найти функцию, выполняющую эту печать, изучите класс подходящего объекта.и затем найдите метод печати для этого класса:

class(fit.pbc)
# [1] "coxph"
grep("coxph", methods("print"), value=TRUE)
# [1] "print.coxph"         "print.coxph.null"   
# [3] "print.coxph.penal"   "print.summary.coxph"

После просмотра print.coxph вот что я придумал:

cox  <- fit.pbc

# Prepare the columns
beta <- coef(cox)
se   <- sqrt(diag(cox$var))
p    <- 1 - pchisq((beta/se)^2, 1)
CI   <- round(confint(cox), 3)

# Bind columns together, and select desired rows
res <- cbind(beta, se = exp(beta), CI, p)
res <- res[c("age", "log(protime)"),]

# Print results in a LaTeX-ready form
xtable(res)
3 голосов
/ 16 октября 2011
xtable(round(summary(fit.pbc)$conf.int[c(1,3),],3))
#-----------------------------#
% latex table generated in R 2.13.1 by xtable 1.5-6 package
% Sat Oct 15 18:36:04 2011
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrr}
  \hline
 & exp(coef) & exp(-coef) & lower .95 & upper .95 \\ 
  \hline
age & 1.04 & 0.96 & 1.02 & 1.06 \\ 
  log(bili) & 2.37 & 0.42 & 2.02 & 2.79 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}

Это показывает, что вы видите с str на объекте summary

str(summary(fit.pbc))
# snipped
 $ conf.int    : num [1:5, 1:4] 1.0404 2.4505 2.3716 10.8791 0.0815 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:5] "age" "edema" "log(bili)" "log(protime)" ...
  .. ..$ : chr [1:4] "exp(coef)" "exp(-coef)" "lower .95" "upper .95"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...