-----Original Message-----
From: Frank E Harrell Jr [mailto:f.harrell at vanderbilt.edu]
Sent: Sunday, March 30, 2008 9:14 AM
To: Wells, Brian
Cc: r-help at r-project.org
Subject: Re: [R] Defining reference category for a cph model summary
inside of a "for" loop
Wells, Brian wrote:
Dr. Harrell,
Thanks for you help.
I tried:
print(summary(f,parse(text=paste(i,'="1st Quartile"', sep=''))))
Same result. No error, the reference category simply doesn't change.
That's good, because the default in summary is to compare the outer
quartiles for a continuous variable. And as I said before the string
'1st Quartile' has no special meaning for R or Design.
Get what you are trying to do to work without parse (and you'll need
eval() with parse) first. When you want total control over a setting,
say getting a hazard ratio for the .2 to the .8 quantile, do something
like
summary(f, age=quantile(age,c(.2,.8),na.rm=TRUE))
Frank
Brian
-----Original Message-----
From: Frank E Harrell Jr [mailto:f.harrell at vanderbilt.edu]
Sent: Friday, March 28, 2008 8:34 PM
To: Wells, Brian
Cc: r-help at r-project.org
Subject: Re: [R] Defining reference category for a cph model summary
inside of a "for" loop
Wells, Brian wrote:
I have the following code.
f <- cph(formula = Surv(TimeToDeath, Dead == "Yes")
~1,data=single.dat, x=T, y=T, surv=T)
for(i in c('A', 'B', 'C', 'D', 'E', 'F')){
f <-update(f,as.formula(paste('Surv(TimeToDeath, Dead ==
print(summary(f, paste(i,"=1st Quartile", sep='')))
There is no error message generated in R, but R ignores the reference
category defined with paste in the summary function for the cph
The output uses the "1st Quartile" as the reference category to
calculate hazards for some of the variables defined by i, but not all
Your code is confusing. What is to the right of ~ in a formula is a
predictor variable name, not a value. If your variables are named A,
C, ... you are OK.
'1st Quartile' has no special meaning to R or Design, and you can't
a character string as a second argument to summary and expect it to
work.
You will need parse(text=paste(...)) to create an appropriate
expression.
But Design gives you inter-quartile range hazard ratios by default
anyway.
Beware of getting hazard ratios that are not adjusted for other
variables needed in the model.
Frank Harrell
Any help would be greatly appreciated.
thanks
Brian J. Wells, MD, MS
Research Associate
Quantitative Health Sciences
Cleveland Clinic