This vignette is intended to introduce the user to fredr functions for the Releases endpoint of the FRED API.
FRED series are added to the FRED database over time in releases. Each FRED release is assigned an integer identifier. The following examples illustrate usage of the Releases endpoint functions in fredr.
The function fredr_releases()
returns a set of all FRED releases matching the request. The data returned is a tibble in which each row represents a FRED release. The default call returns all FRED releases:
fredr_releases()
#> # A tibble: 309 × 7
#> id realtime_start realtime_end name press_release link notes
#> <int> <chr> <chr> <chr> <lgl> <chr> <chr>
#> 1 9 2023-04-16 2023-04-16 Advance Monthly … TRUE http… "The…
#> 2 10 2023-04-16 2023-04-16 Consumer Price I… TRUE http… NA
#> 3 11 2023-04-16 2023-04-16 Employment Cost … TRUE http… NA
#> 4 13 2023-04-16 2023-04-16 G.17 Industrial … TRUE http… NA
#> 5 14 2023-04-16 2023-04-16 G.19 Consumer Cr… TRUE http… NA
#> 6 15 2023-04-16 2023-04-16 G.5 Foreign Exch… TRUE http… NA
#> 7 17 2023-04-16 2023-04-16 H.10 Foreign Exc… TRUE http… NA
#> 8 18 2023-04-16 2023-04-16 H.15 Selected In… TRUE http… NA
#> 9 19 2023-04-16 2023-04-16 H.3 Aggregate Re… TRUE http… "The…
#> 10 20 2023-04-16 2023-04-16 H.4.1 Factors Af… TRUE http… NA
#> # ℹ 299 more rows
The function fredr_releases_dates()
returns a set of release dates for all FRED releases. The data returned is a tibble where each row represents a release date for a release. For example, to get all release dates (up to the limit of 1000
) ordered by descending release date:
fredr_releases_dates()
#> # A tibble: 1,000 × 3
#> release_id release_name date
#> <int> <chr> <chr>
#> 1 72 Daily Treasury Inflation-Indexed Securities 2023-04-17
#> 2 502 Euro Short Term Rate 2023-04-17
#> 3 101 FOMC Press Release 2023-04-17
#> 4 504 Historical Overnight AMERIBOR Unsecured Interest Rate 2023-04-17
#> 5 484 Key ECB Interest Rates 2023-04-17
#> 6 287 Nikkei Indexes 2023-04-17
#> 7 445 Secured Overnight Financing Rate Data 2023-04-17
#> 8 483 SOFR Averages and Index Data 2023-04-17
#> 9 492 SONIA Interest Rate Benchmark 2023-04-17
#> 10 441 Coinbase Cryptocurrencies 2023-04-16
#> # ℹ 990 more rows
To instead order the results by ascending release ID:
fredr_releases_dates(
sort_order = "asc",
order_by = "release_id"
)
#> # A tibble: 1,000 × 3
#> release_id release_name date
#> <int> <chr> <chr>
#> 1 9 Advance Monthly Sales for Retail and Food Services 2023-01-18
#> 2 9 Advance Monthly Sales for Retail and Food Services 2023-02-15
#> 3 9 Advance Monthly Sales for Retail and Food Services 2023-03-15
#> 4 9 Advance Monthly Sales for Retail and Food Services 2023-04-14
#> 5 10 Consumer Price Index 2023-01-12
#> 6 10 Consumer Price Index 2023-02-10
#> 7 10 Consumer Price Index 2023-02-14
#> 8 10 Consumer Price Index 2023-03-14
#> 9 10 Consumer Price Index 2023-04-12
#> 10 11 Employment Cost Index 2023-01-31
#> # ℹ 990 more rows
The function fredr_release()
returns data for a single FRED release specified by release_id
. The data returned is a tibble where each row represents the specified release. For example, to get release data for the Employment Cost Index release:
fredr_release(release_id = 11L)
#> # A tibble: 1 × 6
#> id realtime_start realtime_end name press_release link
#> <int> <chr> <chr> <chr> <lgl> <chr>
#> 1 11 2023-04-17 2023-04-17 Employment Cost Index TRUE http://…
The function fredr_release_dates()
returns a set of release dates for a single FRED release specified by release_id
. The data returned is a tibble where each row represents a release date for the release specified. For example, to get release dates for the Employment Cost Index release:
fredr_release_dates(release_id = 11L)
#> # A tibble: 117 × 2
#> release_id date
#> <int> <chr>
#> 1 11 1996-10-29
#> 2 11 1997-01-28
#> 3 11 1997-04-29
#> 4 11 1997-07-29
#> 5 11 1997-10-28
#> 6 11 1998-01-27
#> 7 11 1998-04-30
#> 8 11 1998-07-30
#> 9 11 1998-10-29
#> 10 11 1999-01-28
#> # ℹ 107 more rows
The function fredr_release_series()
returns a set of series belonging to the FRED release specified by release_id
. The data returned is a tibble where each row represents a series in the release specified. For example, to get series in the Employment Cost Index release:
fredr_release_series(release_id = 10L)
#> # A tibble: 1,000 × 16
#> id realtime_start realtime_end title observation_start observation_end
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 CPIAPPNS 2023-04-17 2023-04-17 Consu… 1914-12-01 2023-03-01
#> 2 CPIAPPSL 2023-04-17 2023-04-17 Consu… 1947-01-01 2023-03-01
#> 3 CPIAUCNS 2023-04-17 2023-04-17 Consu… 1913-01-01 2023-03-01
#> 4 CPIAUCSL 2023-04-17 2023-04-17 Consu… 1947-01-01 2023-03-01
#> 5 CPIEDUNS 2023-04-17 2023-04-17 Consu… 1993-01-01 2023-03-01
#> 6 CPIEDUSL 2023-04-17 2023-04-17 Consu… 1993-01-01 2023-03-01
#> 7 CPIENGNS 2023-04-17 2023-04-17 Consu… 1957-01-01 2023-03-01
#> 8 CPIENGSL 2023-04-17 2023-04-17 Consu… 1957-01-01 2023-03-01
#> 9 CPIFABNS 2023-04-17 2023-04-17 Consu… 1967-01-01 2023-03-01
#> 10 CPIFABSL 2023-04-17 2023-04-17 Consu… 1967-01-01 2023-03-01
#> # ℹ 990 more rows
#> # ℹ 10 more variables: frequency <chr>, frequency_short <chr>, units <chr>,
#> # units_short <chr>, seasonal_adjustment <chr>,
#> # seasonal_adjustment_short <chr>, last_updated <chr>, popularity <int>,
#> # group_popularity <int>, notes <chr>
Note the parameters available to filter series belonging to a release:
fredr_release_series(
release_id = 10L,
filter_variable = "frequency",
filter_value = "Monthly",
order_by = "popularity",
sort_order = "desc",
limit = 10L
)
#> # A tibble: 10 × 16
#> id realtime_start realtime_end title observation_start observation_end
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 CPIAUCSL 2023-04-17 2023-04-17 Cons… 1947-01-01 2023-03-01
#> 2 CPILFESL 2023-04-17 2023-04-17 Cons… 1957-01-01 2023-03-01
#> 3 CUSR0000… 2023-04-17 2023-04-17 Cons… 1953-01-01 2023-03-01
#> 4 CUUR0000… 2023-04-17 2023-04-17 Cons… 1914-12-01 2023-03-01
#> 5 CPIAUCNS 2023-04-17 2023-04-17 Cons… 1913-01-01 2023-03-01
#> 6 CUUR0000… 2023-04-17 2023-04-17 Cons… 1913-01-01 2023-03-01
#> 7 CUUR0000… 2023-04-17 2023-04-17 Cons… 1947-03-01 2023-03-01
#> 8 CUSR0000… 2023-04-17 2023-04-17 Cons… 1953-01-01 2023-03-01
#> 9 CPIUFDSL 2023-04-17 2023-04-17 Cons… 1947-01-01 2023-03-01
#> 10 CPIENGSL 2023-04-17 2023-04-17 Cons… 1957-01-01 2023-03-01
#> # ℹ 10 more variables: frequency <chr>, frequency_short <chr>, units <chr>,
#> # units_short <chr>, seasonal_adjustment <chr>,
#> # seasonal_adjustment_short <chr>, last_updated <chr>, popularity <int>,
#> # group_popularity <int>, notes <chr>
The function fredr_release_tags()
returns a set of tags assigned to series belonging to the FRED release specified by release_id
. The data returned is a tibble where each row represents a tag. For example, to get the geographic tags assigned to series in the Consumer Price Index release:
fredr_release_tags(
release_id = 10L,
tag_group_id = "geo",
order_by = "popularity",
sort_order = "desc"
)
#> # A tibble: 65 × 6
#> name group_id notes created popularity series_count
#> <chr> <chr> <chr> <chr> <int> <int>
#> 1 usa geo United States of America 2012-02-27 1… 100 4714
#> 2 ca geo California 2012-02-27 1… 62 286
#> 3 tx geo Texas 2012-02-27 1… 59 196
#> 4 fl geo Florida 2012-02-27 1… 59 170
#> 5 ny geo New York 2012-02-27 1… 55 94
#> 6 pa geo Pennsylvania 2012-02-27 1… 51 260
#> 7 ga geo Georgia (U.S. state) 2012-02-27 1… 51 96
#> 8 wi geo Wisconsin 2012-02-27 1… 50 222
#> 9 il geo Illinois 2012-02-27 1… 50 146
#> 10 oh geo Ohio 2012-02-27 1… 50 164
#> # ℹ 55 more rows
The function fredr_release_related_tags()
returns a set of tags assigned to series belonging to the FRED release specified by release_id
that are related to tags specified in tag_names
. The data returned is a tibble where each row represents a related tag. For example, to get frequency tags assigned to series in the Consumer Price Index release that are also related to the tag bls
and not the annual
tag:
fredr_release_related_tags(
release_id = 10L,
tag_names = "bls",
tag_group_id = "freq",
exclude_tag_names = "annual",
order_by = "popularity",
sort_order = "desc"
)
#> # A tibble: 2 × 6
#> name group_id notes created popularity series_count
#> <chr> <chr> <chr> <chr> <int> <int>
#> 1 monthly freq "" 2012-02-27 10:18:19-06 94 2168
#> 2 semiannual freq "" 2012-02-27 10:18:19-06 34 1920
The function fredr_release_sources()
returns a set of FRED sources for the FRED release specified by release_id
. The data returned is a tibble where each row represents a source. For example, to get the sources for the Consumer Price Index release:
fredr_release_sources(release_id = 10L)
#> # A tibble: 1 × 5
#> id realtime_start realtime_end name link
#> <int> <chr> <chr> <chr> <chr>
#> 1 22 2023-04-17 2023-04-17 U.S. Bureau of Labor Statistics https://www…
The function fredr_release_tables()
returns a set of FRED release table trees for the FRED release specified by release_id
. The data returned is a tibble where each row represents an element of the table tree’s children: the column name
gives the element ID and the column value
stores data nodes for the element (e.g. element ID, release ID, parent ID, element type, element name, children, etc.). For example, to get the table tree for the Consumer Price Index release:
cpi_tbl <- fredr_release_tables(release_id = 10L)
cpi_tbl
#> # A tibble: 2 × 2
#> name value
#> <chr> <list>
#> 1 34481 <named list [9]>
#> 2 36712 <named list [9]>
The above table has two elements: 34481
and 36712
. Inspect an element (a list) by selecting its row and unnesting the row element value
using tibble::deframe()
:
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(tibble)
cpi_tbl %>%
slice(2) %>%
deframe()
#> $`36712`
#> $`36712`$element_id
#> [1] 36712
#>
#> $`36712`$release_id
#> [1] 10
#>
#> $`36712`$series_id
#> NULL
#>
#> $`36712`$parent_id
#> NULL
#>
#> $`36712`$line
#> NULL
#>
#> $`36712`$type
#> [1] "section"
#>
#> $`36712`$name
#> [1] "Consumer Price Index Special Aggregate Indices"
#>
#> $`36712`$level
#> [1] "0"
#>
#> $`36712`$children
#> list()
You can extract the tree hierarchy of a deeper element in the table by specifying an element_id
. From the previous example, if you wanted to get the subtree for child element 36712
of the Consumer Price Index table:
fredr_release_tables(
release_id = 10L,
element_id = 36712L
)
#> # A tibble: 4 × 2
#> name value
#> <chr> <list>
#> 1 36713 <named list [9]>
#> 2 36801 <named list [9]>
#> 3 37003 <named list [9]>
#> 4 37691 <named list [9]>