Skip to content

Incompatible class ordering with tidyverse #7

Description

@FinYang

Is the package still maintained?

fbi/R/fredmd.R

Line 159 in 9de0e15

class(outdata) <- c("data.frame", "fredmd")

It's better to have

class(outdata) <- c("fredmd", "data.frame")
library(fbi)
library(tidyverse)

dat <- fredmd("https://www.stlouisfed.org/-/media/project/frbstl/stlouisfed/research/fred-md/monthly/2026-04-md.csv") 
dat |> 
  filter(date < as.Date("2026-04-01"))
#> Error in `vec_slice()`:
#> ! `x` must be a vector, not a <data.frame> object.
#> ✖ Detected incompatible data frame structure. A data frame is normally treated as a vector, but an incompatible class ordering was detected. To be compatible, the subclass <fredmd> must come before <data.frame>, not after. Class: <data.frame/fredmd>.
#> ℹ If this object comes from a package, please report this error to the package author.
#> ℹ Read our FAQ about creating vector types (`?vctrs::howto_faq_fix_scalar_type_error`) to learn more.
class(dat)
#> [1] "data.frame" "fredmd"

Created on 2026-05-31 with reprex v2.1.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions