
Pedro, Em síntese o que você deseja fazer é um /parsing/ da fórmula e exportá-la (na verdade os termos) para a planilha eletrônica. IIRC não há um pacote ou função que o faça direta e completamente, mas um início saudável seria ir na linha deste post: http://stackoverflow.com/questions/10224805/how-to-select-a-part-of-formula-... . HTH -- Cesar Rabak 2016-04-20 17:36 GMT-03:00 Pedro Emmanuel Alvarenga Americano do Brasil < emmanuel.brasil@gmail.com>:
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
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.