This too is a question, not really an attempt to provide an answer.

What has happened with the proposed S7 object that can loosely be seen as an 
effort to somewhat merge S3 and S4 and perhaps more?

Back to what Erin wrote that is interesting.

If a package creates stand-alone objects that are pretty much only created and 
manipulated within the object, then indeed the choice of S3 over S4 may not 
matter as much. But in his examples, there is the point that an object that is 
related to other well-known objects is designed well, it may be possible for it 
to be used more broadly, often without losing the added functionality. This can 
be a huge plus and prevent a need to reinvent a parallel set of functions just 
to do about the same thing on an object that is now one-of-a-kind.

Of course, as mentioned, the users matter and unless they are equipped with the 
appropriate versions of R and related packages, too new an approach may not 
suit their needs. In any case, your documentation and code may need to reflect 
making sure the needs are understood and met. But, by now, I suspect S4 is also 
pretty much as easy to be supported as S3, albeit I have no idea if S7 is even 
out there, let alone properly supported.

My personal bias is that object-oriented programming may be best performed 
using language features designed for it. Arguably, R has some kludges in how S3 
was created and extended and S4 in some sense is designed to be a bit more 
suitable. Other languages have much more robust designs, albeit maybe only from 
my perspective, including some where everything is a fully-fledged object. 

But I leave it up to people who regularly create projects using S3 or S4 or 
both to comment on the realities.


-----Original Message-----
From: R-help <r-help-boun...@r-project.org> On Behalf Of Eric Berger
Sent: Monday, April 7, 2025 4:20 PM
To: Erin Hodgess <erinm.hodg...@gmail.com>
Cc: r-help@r-project.org
Subject: Re: [R] An opinion question, please

As Bert indicated, the more information you can provide about the
package goals and intended users, the more appropriate the answers
will be.

Rob Hyndman and his group have made many contributions to the field of
time series and the sub-field of forecasting, both on the theoretical
and practical sides.
Hyndman et al have created many R packages devoted to time series.
Their basic "object" is a tsibble, which is a subclass of a tibble,
which itself is a subclass of an R DataFrame.
More generally, they have adopted to extend Posit's "tidyverse" to a
"tidyverts" (where 'ts' stands for time series), so that many commonly
used packages/functions in the tidyverse can do the appropriate thing
when handed a 'tsibble' as an input, rather than a tibble. e.g.
ggplot2::autoplot( some_tsibble )

Some objects in the tidyverts that seem related to your package include:
dable - a decomposition table, which is a subclass of tsibble, and
which breaks the time series into components (trend, seasonality,
residual)
mable - a model table, used when applying different models to the same
dataset, a fairly common use case

For more information on Hyndman's approach to time series forecasting
and his R tools, check out his freely available textbook
"Forecasting: Principles and Practice (3rd Edition)"
https://otexts.com/fpp3/

HTH,
Eric




On Mon, Apr 7, 2025 at 8:46 PM Erin Hodgess <erinm.hodg...@gmail.com> wrote:
>
> Thanks, Bert!
>
> It’s for disaggregation of time series using different underlying
> distributions.
>
>
>
> Erin Hodgess, PhD
> mailto: erinm.hodg...@gmail.com
>
>
> On Mon, Apr 7, 2025 at 11:40 AM Bert Gunter <bgunter.4...@gmail.com> wrote:
>
> > My *opinion*:
> >
> > 1. As it stands, this "opinion survey" seems pretty useless;
> > 2. It *might* be more useful if you explained what the package will do,
> > who it's intended users are, etc.
> >
> > -- Bert
> >
> > "An educated person is one who can entertain new ideas, entertain others,
> > and entertain herself."
> >
> >
> >
> > On Mon, Apr 7, 2025 at 10:36 AM Erin Hodgess <erinm.hodg...@gmail.com>
> > wrote:
> >
> >> Hello everyone!
> >>
> >> I have an opinion question please.  If I’m writing a new package, would
> >> you
> >> recommend using S3 or S4 structure, please?
> >>
> >> I know I will get lots of opinions, but that’s fine.
> >>
> >> Thanks,
> >> Erin
> >>
> >>
> >> Erin Hodgess, PhD
> >> mailto: erinm.hodg...@gmail.com
> >>
> >>         [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide
> >> https://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >>
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to