2016-03-30 5 views
0

anova.rmsの出力をdata.frameに取得したいとします。anova.rmsの出力をdata.frameに取得します。

library("rms") 

# generate data taken from ?cph 
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' 
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) 

anovaTable <- anova(f,main.effect=T,indnl=F) 
# the table I want 
anovaTable 

data.frame(anovaTable)は、重複する行名のために機能しません。 str(anovaTable)を検索しましたが、取得方法は不明でした。ありがとう。

+0

あなたは 'broom'パッケージの' tidy'関数を試すことができます。 – Jota

答えて

1

make.unique関数を使用すると、行の名前を一意にすることができます。

as.data.frame(anovaTable, row.names = make.unique(rownames(anovaTable))) 
関連する問題