[R-br] Exrpotar formula de modelo para planilha

Pedro Emmanuel Alvarenga Americano do Brasil emmanuel.brasil em gmail.com
Quarta Abril 20 17:36:41 BRT 2016


Amigos de R,

Ajustei um modelo de sobrevivencia e gostaria de exportar o modelo uma
planilha xlsx ou csv, de tal forma que os coeficientes fiquem numa coluna e
na coluna ao lado fique pelo o que o coeficiente está multiplicando. Já
quebrei a cabeça aqui e não consegui. A pegadinha é que o modelo possui
algumas transformações por splines e por isso preciso dos valores dos nós
pra cada variável contínua. Achei uma função chamada Function que faz isso.
Mas depois disso eu não avancei. Eu gostaria de pegar da saída função
Function o que está entre as chaves, quebrar nos "+" e nos "-" pra separar
os termos e depois quebrar nos "*" pra separar as colunas. Organizar em
formato de planilha e exportar.

library(rms)
n <- 1000
age <- 50 + 12*rnorm(n)
label(age) <- "Age"
sex <- factor(sample(c('Male','Female'), n,
                     rep=TRUE, prob=c(.6, .4)))
cens <- 15*runif(n)
h <- .02*exp(.04*(age-50)+.8*(sex=='Female'))
dt <- -log(runif(n))/h
label(dt) <- 'Follow-up Time'
e <- ifelse(dt <= cens,1,0)
dt <- pmin(dt, cens)
units(dt) <- "Year"
dd <- datadist(age, sex)
options(datadist='dd')
S <- Surv(dt,e)
f <- cph(S ~ rcs(age,4) + sex, x=TRUE, y=TRUE)
>Function(f)
>function(age = 48.800654,sex = "Male") {0.28612987-0.017321951*
age+0.00012586581*pmax(age-29.600456,0)^3-0.00046285671*pmax(age-44.273198,0)^3+0.00042111763*pmax(age-53.769262,0)^3-8.4126731e-05*pmax(age-69.855597,0)^3-0.64448916*(sex=="Male")
}
<environment: 0x0000000015fa7378>

Pra ficar mais ou menos assim
+0.28612987
-0.017321951    age
+0.00012586581  pmax(age-29.600456,0)^3
-0.00046285671  pmax(age-44.273198,0)^3
+0.00042111763  pmax(age-53.769262,0)^3
-8.4126731e-05  pmax(age-69.855597,0)^3
-0.64448916     (sex=="Male")

Alguma luz?

Abraço forte,

Pedro Brasil
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160420/73d7be13/attachment.html>


Mais detalhes sobre a lista de discussão R-br