[Rd] Methods for objects inheriting from lme (nlme package)

Johannes Ranke joh@nne@@r@nke @end|ng |rom jrwb@de
Mon Jul 20 13:20:24 CEST 2020


Am Montag, 20. Juli 2020, 11:12:25 CEST schrieb Johannes Ranke:
> Dear R developers,
> 
> One function in my mkin package [1] returns an object that is originally
> created by nlme(), but contains some additional information. Its class is
> c("mmkin.nlme", "nlme", "lme").
> 
> Now I would like to use the anova() method for lme objects for comparing
> such S3 objects. Unfortunately, anova.lme currently does not check for
> inheritance, but checks the  first element of the class attribute (as
> obtained by data.class()) against a hardcoded list of classes in order to
> decide if it will work or not.
> 
> Therefore, I created a bug report [2], containing a patch [3] for nlme that
> makes anova.lme check for inheritance.
> 
> Encouraged by a kind comment by Elin Waring in the BTS, I have now revisited
> my bug report, and discovered that the help page for data.class() claims
> that its return value (the first element of the class attribute vector) is
> "what is typically useful for method dispatching".
> 
> However, I think that this use case illustrates that it would be useful not
> only to check for the primary class, but rather for class inheritance.
> 
> Do you agree that it is preferable for the S3 method to check for
> inheritance instead of checking against a hardcoded list in this case?
> 
> Kind regards,
> 
> Johannes Ranke
> 
> 
> [1]  https://github.com/jranke/mkin/blob/master/R/nlme.mmkin.R
> [2]  https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17761
> [3]  https://bugs.r-project.org/bugzilla/attachment.cgi?id=2578

P.S.: I have updated the patch [4] based on comments provided by Sebastian 
Meyer.

[4] https://bugs.r-project.org/bugzilla/attachment.cgi?id=2656
	[[alternative HTML version deleted]]



More information about the R-devel mailing list