[R] survfit & number of variables != number of variable names

David Winsemius dwinsemius at comcast.net
Sat Nov 17 17:12:32 CET 2012


On Nov 16, 2012, at 6:05 PM, Georges Dupret wrote:

> This works ok:
>
>> cox = coxph(surv ~ bucket*(today + accor + both) + activity, data =  
>> data)
>> fit = survfit(cox, newdata=data[1:100,])
>
> but using strata leads to problems:
>
>> cox.s = coxph(surv ~  bucket*(today + accor + both) +  
>> strata(activity),
>> data = data)
>> fit.s = survfit(cox.s, newdata=data[1:100,])
>
> Error in model.frame.default(data = data[1:100, ], formula = ~bucket  
> +  :
>  number of variables != number of variable names
>
> Note that the following give rise to the same error:
>
>> fit.s = survfit(cox.s, newdata=data)
> Error in model.frame.default(data = data, formula = ~bucket + today  
> +  :
>  number of variables != number of variable names
>
> but if I use data implicitly, all is working fine:
>> fit.s = survfit(cox.s)
>
> Any idea on how I could solve this?
>

I noticed that you were using what might be called an "externally  
created Surv object". I have a memory that Terry Therneau has  
criticized that practice. I cannot remember if it was in exactly this  
situation but I might ask if setting up the model as:

cox = coxph(Surv(stime, event) ~ bucket*(today + accor + both) +  
activity, data = data)

... might give the survival machinery a better handle on where  
everything might be found.

-- 
David.


David Winsemius, MD
Alameda, CA, USA




More information about the R-help mailing list