[R] AFTREG with ID argument
dwinsemius at comcast.net
Thu Feb 11 17:30:07 CET 2010
On Feb 11, 2010, at 5:58 AM, Philipp Rappold wrote:
> Göran, thanks!
> One more thing that I found: As soon as you have at least one NA in
> the independent vars, the trick that you mentioned does not work
> anymore. Example:
> > testdata
> start stop censor groupvar var1
> 1 0 1 0 1 0.1284928
> 2 1 2 0 1 0.4896125
> 3 2 3 0 1 0.7012899
> 4 3 4 0 1 NA
> 5 0 1 0 2 0.7964361
> 6 1 2 0 2 0.8466039
> 7 2 3 1 2 0.2234271
> > aftreg(Surv(start, stop, censor)~var1, data=testdata, id=testdata
> Error in order(id, Y[, 1]) : Different length of arguments (* I
> translated this from the German Output *)
> Do you think there is a simple hack which excludes all subjects that
> have at least on NA in their independent vars? If it was only one
> dependent var it would probably be easy by just using subset, but I
> have lots of different combinations of vars that I'd like to test ;)
I don't know if it's a "hack", but there are a set of functions that
perform such subsetting:
There is a parameter that would accomplish that goal inside aftreg.
You may want to check what your defaults are for na.action.
> PS: Conerning the benmark: For a large dataset (~ 1600 observations
> on ~300 subjects) processing takes about 40 seconds (core 2 duo @
> 2.46 GHz, T9300). Interestingly, processing the testdata-set above
> with only 7 observations on 2 subjects takes 2 minutes...
> Göran Broström wrote:
>> Philipp Rappold wrote:
>>> Dear all,
>>> I have some trouble using the "id"-argument with aftreg
>>> (accelerated failure time regression analysis from the eha library).
>>> As far as I understand it, the id argument is used to group
>>> individuals together if there are time-varying covariates and the
>>> data is arranged in counting process style.
>>> Unfortunately, i cannot figure out how to use the "id"-argument.
>>> The most straight-forward way would be to simply state the
>>> grouping variable, but it throws an error. I've included an
>>> example below: the dataframe for regression is called "test", with
>>> the grouping variable "person".
>>> > test
>>> start end censor person var1
>>> 1 0 1 0 1 0.5
>>> 2 1 2 0 1 0.4
>>> 3 2 3 0 1 0.6
>>> 4 3 4 1 1 -0.3
>>> 5 0 1 0 2 0.6
>>> 6 1 2 0 2 0.7
>>> 7 2 3 0 2 0.6
>>> > fit <- aftreg(Surv(start, end, censor)~var1, data=test, id=person)
>>> Error in order(id, Y[, 1]) : argument 1 is not a vector
>> You have caught the _function_ 'person' (package: utils) instead of
>> the variable 'person' in the data frame. That explains the odd
>> error message. If you change the variable name to, e.g., "ID",
>> you'll get the error message
>> Error in order(id, Y[, 1]) : object 'id' not found
>> which would hint you in the right direction. You need to specify
>> 'id' by a full name, in your case 'test$person'. This is of course
>> a deficiency in the interface of aftreg. I will fix it asap.
>> So the temporary fix is 'id = test$person'.
>> Thanks for the report,
>>> > fit <- aftreg(Surv(start, end, censor)~var1, data=test,
>>> Error in `[.data.frame`(id, ord) : undefined columns selected
>>> What would be the correct way to fit this example model?
>>> Thanks + all the best
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
West Hartford, CT
More information about the R-help