Given a series ID, return observations of that series as a tibble
object.
fredr()
is an alias for fredr_series_observations()
.
fredr_series_observations(
series_id,
...,
observation_start = NULL,
observation_end = NULL,
frequency = NULL,
aggregation_method = NULL,
limit = NULL,
offset = NULL,
sort_order = NULL,
units = NULL,
realtime_start = NULL,
realtime_end = NULL,
vintage_dates = NULL,
output_type = NULL
)
fredr(
series_id,
...,
observation_start = NULL,
observation_end = NULL,
frequency = NULL,
aggregation_method = NULL,
limit = NULL,
offset = NULL,
sort_order = NULL,
units = NULL,
realtime_start = NULL,
realtime_end = NULL,
vintage_dates = NULL,
output_type = NULL
)
A string ID for the FRED series.
These dots only exist for future extensions and should be empty.
A Date
indicating the start of the observation period.
Defaults to 1776-07-04
, the earliest available date.
A Date
indicating the end of the observation period.
Defaults to 9999-12-31
, the latest available date.
A string representing a lower frequency to aggregate to. Defaults to no frequency aggregation. Possible values are:
"d"
- Daily
"w"
- Weekly
"bw"
- Biweekly
"m"
- Monthly
"q"
- Quarterly
"sa"
- Semiannual
"a"
- Annual
"wem"
- Weekly, ending Monday
"wetu"
- Weekly, ending Tuesday
"wew"
- Weekly, ending Wednesday
"weth"
- Weekly, ending Thursday
"wef"
- Weekly, ending Friday
"wesa"
- Weekly, ending Saturday
"wesu"
- Weekly, ending Sunday
"bwew"
- Biweekly, ending Wednesday
"bwem"
- Biweekly, ending Monday
A string representing the aggregation method
used for frequency aggregation. This parameter has no affect is frequency
is not set. Possible values are:
"avg"
for average
"sum"
for sum
"eop"
for end of period value
An integer limit on the maximum number of results to return.
Defaults to 100000
, the maximum.
An integer used in conjunction with limit
for long series.
This mimics the idea of pagination to retrieve large amounts of data over
multiple calls. Defaults to 0
.
A string representing the order of the resulting series.
Possible values are: "asc"
(default), and "desc"
.
A string indicating the data value transformation.
Defaults to "lin"
. Possible values are:
"lin"
- Levels (No transformation)
"chg"
- Change
"ch1"
- Change from 1 year ago
"pch"
- Percent change
"pc1"
- Percent change from 1 year ago
"pca"
- Compounded annual rate of change
"cch"
- Continuously compounded rate of change
"cca"
- Continuously compounded annual rate of change
"log"
- Natural log
A Date
indicating the start of the real-time period.
Defaults to today's date. For more information, see
Real-Time Periods.
A Date
indicating the end of the real-time period.
Defaults to today's date. For more information, see
Real-Time Periods.
A vector of Date
objects to download data for.
Vintage dates are used to download data as it existed on these specified
dates in history. They can be specified instead of a real-time period using
realtime_start
and realtime_end
. Defaults to no vintage dates.
An integer indicating the output type. Not used unless
realtime_start
is used. Possible values are:
1
for Observations by Real-Time Period (default)
2
for Observations by Vintage Date, All Observations
3
for Observations by Vintage Date, New and Revised Observations Only
4
for Observations, Initial Release Only.
A tibble
object with observation dates and values.
if (fredr_has_key()) {
# Observations for "UNRATE" series between 1980 and 2000. Units are in terms
# of change from previous observation.
fredr(
series_id = "UNRATE",
observation_start = as.Date("1980-01-01"),
observation_end = as.Date("2000-01-01"),
units = "chg"
)
# All observations for "OILPRICE" series. The data is first aggregated by
# quarter by taking the average of all observations in the quarter then
# transformed by taking the natural logarithm.
fredr(
series_id = "OILPRICE",
frequency = "q",
aggregation_method = "avg",
units = "log"
)
# To retrieve values for multiple series, use purrr's map_dfr() function.
if (requireNamespace("purrr", quietly = TRUE)) {
library(purrr)
purrr::map_dfr(c("UNRATE", "OILPRICE"), fredr)
# Using purrr::pmap_dfr() allows you to use varying optional parameters
params <- list(
series_id = c("UNRATE", "OILPRICE"),
frequency = c("m", "q")
)
purrr::pmap_dfr(
.l = params,
.f = ~ fredr(series_id = .x, frequency = .y)
)
}
}
#> # A tibble: 1,174 × 5
#> date series_id value realtime_start realtime_end
#> <date> <chr> <dbl> <date> <date>
#> 1 1948-01-01 UNRATE 3.4 2023-04-17 2023-04-17
#> 2 1948-02-01 UNRATE 3.8 2023-04-17 2023-04-17
#> 3 1948-03-01 UNRATE 4 2023-04-17 2023-04-17
#> 4 1948-04-01 UNRATE 3.9 2023-04-17 2023-04-17
#> 5 1948-05-01 UNRATE 3.5 2023-04-17 2023-04-17
#> 6 1948-06-01 UNRATE 3.6 2023-04-17 2023-04-17
#> 7 1948-07-01 UNRATE 3.6 2023-04-17 2023-04-17
#> 8 1948-08-01 UNRATE 3.9 2023-04-17 2023-04-17
#> 9 1948-09-01 UNRATE 3.8 2023-04-17 2023-04-17
#> 10 1948-10-01 UNRATE 3.7 2023-04-17 2023-04-17
#> # ℹ 1,164 more rows