我试图使用R,Sweave和latex在pdf中打印出我的生存信息。
我正在复制下面的所有相关代码,但这是我需要打印的部分:
N Observed Expected (O-E)^2/E (O-E)^2/V
male=0 10 3 8.57 3.624 4.67
male=1 65 48 42.43 0.732 4.67
Chisq= 4.7 on 1 degrees of freedom, p= 0.0306
以下是让我几乎到达我想要的地方的代码:
s.male <- survfit( Surv(futime, status)~ strata(male), shou3, conf.type="log-log")
plot(s.male, lty=c(1,3), xlab="Time", ylab="Survival Probability")
legend(30, 1.1, c("Female","Male")
, lty=c(1,3) )
sma <- print.data.frame(survdiff(Surv(futime, status) ~ male
, data=shou3, rho=0))
sma2 <- print.data.frame(sma, digits = 2)
> sma2
Call:
survdiff(formula = Surv(futime, status) ~ male, data = shou3,
rho = 0)
N Observed Expected (O-E)^2/E (O-E)^2/V
male=0 10 3 8.57 3.624 4.67
male=1 65 48 42.43 0.732 4.67
Chisq= 4.7 on 1 degrees of freedom, p= 0.0306
以下是我尝试做的事情。
<<results=tex, echo=FALSE>>=
latex(print(sma), file='', landscape=TRUE, round=1)
#latex(sma2, file = " ")
#latex(print.data.frame(sma2, cdec = 2, file=''))
#malesd <- survdiff(as.formula(sma$call$formula))
#latex(print(sma2, latex=TRUE, coefs=FALSE, file = " "))
#latex(sma2, file = " ")
# , cdec=c(0,0,2,2,2), na.blank=TRUE, booktabs=TRUE, table.env=FALSE, center="none", file="", title="")
@
我似乎无法从对象中获取(OE)^ 2 / E(OE)^ 2 / V元素,而我无法将Chisq线路输出,我希望(我试过cbind / rbind)。我使用的是R Studio,它是一个.rnw文件。如果格式不好,请为此道歉。我反对截止日期和期限对于我在美国可能会问的同事们来说,时间紧迫,所以非常感谢你的帮助,谢谢! -Jen
答案 0 :(得分:0)
我有两个解决方案。两者都不是很优雅。
以下是一些示例数据。
n <- 1000
set.seed(731)
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'
status <- ifelse(dt <= cens, 1, 0)
futime <- pmin(dt, cens)
# Check it out:
survfitObj <- survfit( Surv(futime, status)~ strata(sex), conf.type="log-log")
plot(survfitObj, lty=c(1,3), xlab="Time", ylab="Survival Probability")
survdiffObj <- survdiff(Surv(futime, status) ~ sex, rho=0)
解决方案1:不要尝试在乳胶中输出结果,只需使用原始输出:
<<results=verbatim, echo=FALSE>>=
survdiffObj
@
解决方案2:手工制作表格#34;
<<>>=
tabl <- data.frame(N = survdiffObj$n,
Observed = survdiffObj$obs,
Expected = survdiffObj$exp,
col5 = (survdiffObj$obs - survdiffObj$exp)^2/survdiffObj$exp,
col6 = (survdiffObj$obs - survdiffObj$exp)^2/diag(survdiffObj$var))
latex(tabl, file = TRUE)
@
这仍然需要格式化。