2016-03-23 5 views
0

R、Sweave、ラテックスを使ってpdfに私のsurvdiffプリントアウトをしようとしています。R - スウェーブの私のラテックスpdfファイルにsurvdiffの出力を出そうとしています

私は、下記の関連するすべてのコードをコピーしていますが、これは私がプリントアウトする必要がある部分である:ここでは

 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

私には2つの解決策があります。どちらも非常にエレガントです。

ここにいくつかのデータ例があります。

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: "手で" テーブルを作る

<<>>= 
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) 
@ 

これはまだフォーマットする必要があります。

関連する問題