[R-pkg-devel] tibbles are not data frames
Since tibbles add their class attributes first, you could use: tb <- tibble(a = 5) inherits(tb, "data.frame", which = TRUE) == 1 if "tb" is a data frame (only), TRUE is returned, for tibble FALSE. You could then coerce to data frame: as.data.frame(tb) -----Urspr?ngliche Nachricht----- Von: R-package-devel [mailto:r-package-devel-bounces at r-project.org] Im Auftrag von G?ran Brostr?m Gesendet: Dienstag, 26. September 2017 12:09 An: r-package-devel at r-project.org Betreff: Re: [R-pkg-devel] tibbles are not data frames
On 2017-09-26 11:56, G?bor Cs?rdi wrote:
On Tue, Sep 26, 2017 at 10:35 AM, Joris Meys <Joris.Meys at ugent.be> wrote:
I don't like the dropping of dimensions either. That doesn't change the fact that a tibble reacts different from a data.frame. So tibbles do not inherit correctly from the class data.frame, and it can thus be argued that it's against OOP paradigms to pretend tibbles inherit from the class data.frame.
I have yet to see an OOP system in which a subclass cannot override the methods of its superclass. Not only is this in line with OOP paradigms, it is actually one of the essential OOP features. To be more constructive, if you have a function that only works with data frame inputs, then it is good practice to check that the supplied input is indeed a data frame. This is independent of tibbles.
It is not. I check input for being a data frame, but tibbles pass that test. That's the essence of the problem.
In practice it seems to me that an easy fix is to just call as.data.frame on the input. This should either convert it to a data frame, or throw an error.
Sure, but I still need to rewrite the package. G?rn
For tibbles it drops the tbl* classes. Gabor
Defensive coding techniques would check if it's a tibble and return an error saying a data.frame is expected. Unless tibbles inherit correctly from data.frame. I have nothing against tibbles. But calling them "data.frame" raises expectations that can't be fulfilled.
[...]
______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel -- _____________________________________________________________________ Universit?tsklinikum Hamburg-Eppendorf; K?rperschaft des ?ffentlichen Rechts; Gerichtsstand: Hamburg | www.uke.de Vorstandsmitglieder: Prof. Dr. Burkhard G?ke (Vorsitzender), Prof. Dr. Dr. Uwe Koch-Gromus, Joachim Pr?l?, Martina Saurin (komm.) _____________________________________________________________________ SAVE PAPER - THINK BEFORE PRINTING