[R] names.data.frame?

Leonard Mada |eo@m@d@ @end|ng |rom @yon|c@eu
Wed Nov 3 20:40:12 CET 2021


Thank you very much.


Indeed, NextMethod() is the correct way and is working fine.


There are some alternatives (as pointed out). Although I am still trying 
to figure out what would be the best design strategy of such a class.


Note:

- I wanted to exclude the "coeff" column from the returned names;
names.pm = function(p) {
     nms = NextMethod();
     # excludes the Coefficients:
     id = match("coeff", nms);
     return(nms[ - id]);
}


This is why I also hesitate regarding what to use: dimnames or names.


Sincerely,


Leonard


On 11/3/2021 8:54 PM, Andrew Simmons wrote:
> First, your signature for names.pm <http://names.pm> is wrong. It 
> should look something more like:
>
>
> names.pm <http://names.pm> <- function (x)
> {
> }
>
>
> As for the body of the function, you might do something like:
>
>
> names.pm <http://names.pm> <- function (x)
> {
>     NextMethod()
> }
>
>
> but you don't need to define a names method if you're just going to 
> call the next method. I would suggest not defining a names method at all.
>
>
> As a side note, I would suggest making your class through the methods 
> package, with methods::setClass("pm", ...)
> See the documentation for setClass for more details, it's the 
> recommended way to define classes in R.
>
> On Wed, Nov 3, 2021 at 2:36 PM Leonard Mada via R-help 
> <r-help using r-project.org> wrote:
>
>     Dear List members,
>
>
>     Is there a way to access the default names() function?
>
>
>     I tried the following:
>
>     # Multi-variable polynomial
>
>     p = data.frame(x=1:3, coeff=1)
>
>     class(p) = c("pm", class(p));
>
>
>     names.pm <http://names.pm> = function(p) {
>     # .Primitive("names")(p) # does NOT function
>     # .Internal("names")(p) # does NOT function
>     # nms = names.default(p) # does NOT exist
>     # nms = names.data.frame(p) # does NOT exist
>     # nms = names(p); # obvious infinite recursion;
>     nms = names(unclass(p));
>     }
>
>
>     Alternatively:
>
>     Would it be better to use dimnames.pm <http://dimnames.pm> instead
>     of names.pm <http://names.pm>?
>
>     I am not fully aware of the advantages and disadvantages of
>     dimnames vs
>     names.
>
>
>     Sincerely,
>
>
>     Leonard
>
>     ______________________________________________
>     R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>     https://stat.ethz.ch/mailman/listinfo/r-help
>     PLEASE do read the posting guide
>     http://www.R-project.org/posting-guide.html
>     <http://www.R-project.org/posting-guide.html>
>     and provide commented, minimal, self-contained, reproducible code.
>
	[[alternative HTML version deleted]]



More information about the R-help mailing list