[R] AFTREG with ID argument

Philipp Rappold philipp.rappold at gmail.com
Thu Feb 11 11:58:56 CET 2010


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$groupvar)
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 ;)

Best
Philipp

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,
> 
> Göran
> 
> 
>>
>>  > fit <- aftreg(Surv(start, end, censor)~var1, data=test, 
>> id=test["person"])
>> Error in `[.data.frame`(id, ord) : undefined columns selected
>>
>>
>>
>> What would be the correct way to fit this example model?
>>
>> Thanks + all the best
>> Philipp
>



More information about the R-help mailing list