[R-pkg-devel] tibbles are not data frames

Hadley Wickham h.wickham at gmail.com
Tue Sep 26 17:29:41 CEST 2017


On Tue, Sep 26, 2017 at 9:22 AM, Patrick Perry <patperry at gmail.com> wrote:
> Would it be possible to change tibbles so that
>
> x[,1,drop=TRUE]
>
> returns a vector, not a data frame? I certainly find it surprising that
> tibbles ignore
> the drop argument. If tibbles respeced the drop argument, then package
> developers could rely on
>
> x[,1,drop=FALSE]
>
> or
>
> x[,1,drop=TRUE]
>
> behaving consistently, regardless of whether the argument is a tibble or a
> data.frame.

They can currently rely on x[[1]] returning alway a vector and x[, 1,
drop = FALSE] always returning a data frame whether x is a tibble or a
data frame. I personally don't believe that an additional approach
would help.

> Alternatively, would it be possible to make is.data.frame return FALSE for a
> tibble? Then
> developers that want base-R data.frame behavior can do
>
> if (!is.data.frame(x)) {
>     x <- as.data.frame(x)
> }
>

As I've said elsewhere in the thread that would effectively render
tibbles useless because they wouldn't work with many functions.

Hadley

-- 
http://hadley.nz



More information about the R-package-devel mailing list