Skip to contents

The series alias is a positional code showing the location (column and/or row) of the series in the table. Although it is unique, it is not stable enough to use as the series ID because it may change when the series moves.

To ensure series can still be identified, even after these changes, they are assigned a sequential number (referred to as series_code in this function).

Note that a single series may appear in different tables, so it can have several aliases. If you need to search by alias, use bde_series_full_load().

Usage

bde_series_load(
  series_code,
  series_label = NULL,
  out_format = "wide",
  parse_dates = TRUE,
  parse_numeric = TRUE,
  cache_dir = NULL,
  update_cache = FALSE,
  verbose = FALSE,
  extract_metadata = FALSE
)

Arguments

series_code

A numeric value, or one coercible with base::as.double(), or a vector of time series codes, as defined in the field Número secuencial of the corresponding series. See bde_catalog_load().

series_label

Optional character string or vector of labels to assign to the extracted series.

out_format

The format to return, either "wide" or "long". See Value for details and the Examples section.

parse_dates

Logical. If TRUE, dates are parsed using bde_parse_dates().

parse_numeric

Logical. If TRUE, the columns are parsed to double (numeric) values. See Note.

cache_dir

A path to a cache directory. The directory can also be set with options using options(bde_cache_dir = "path/to/dir").

update_cache

Logical. If TRUE, the requested file is refreshed in cache_dir.

verbose

Logical. If TRUE, display information useful for debugging.

extract_metadata

Logical TRUE/FALSE. If TRUE, the output is the metadata of the requested series.

Value

A tibble with a Date column:

  • With out_format = "wide", each series is presented in a separate column with the name defined by series_label.

  • With out_format = "long", the tibble has two additional columns:

    • serie_name, with the label of each series.

    • serie_value, with the corresponding value.

"wide" format is more suitable for exporting to a .csv file, while "long" format is more suitable for creating plots using ggplot2::ggplot(). See also tidyr::pivot_longer() and tidyr::pivot_wider().

Details

Load a single BdE time series.

Note

This function attempts to coerce the columns to numbers. For some series, a warning may be displayed if the parsing fails.

Examples

# \donttest{
# Show metadata.
bde_series_load(573234, verbose = TRUE, extract_metadata = TRUE)
#> tidyBdE> Caching in temporary directory /tmp/RtmpBi90qM.
#> tidyBdE> Cached version of BE detected.
#> tidyBdE> Cached version of SI detected.
#> tidyBdE> Cached version of TC detected.
#> tidyBdE> Cached version of TI detected.
#> tidyBdE> Cached version of PB detected.
#> tidyBdE> Parsing dates.
#> tidyBdE> Extracting series 573234.
#> 
#> tidyBdE> Downloading series 573234 from file TC_1_1.csv (alias TC_1_1.1).
#> tidyBdE> Caching in temporary directory /tmp/RtmpBi90qM/TC.
#> tidyBdE> Downloading file from https://www.bde.es/webbe/es/estadisticas/compartido/datos/csv/tc_1_1.csv.
#> 
#> # A tibble: 6 × 2
#>   Date                        `573234`                                          
#>   <chr>                       <chr>                                             
#> 1 CÓDIGO DE LA SERIE          DTCCBCEUSDEUR.B                                   
#> 2 NÚMERO SECUENCIAL           573234                                            
#> 3 ALIAS DE LA SERIE           TC_1_1.1                                          
#> 4 DESCRIPCIÓN DE LA SERIE     Tipo de cambio. Dólares estadounidenses por euro …
#> 5 DESCRIPCIÓN DE LAS UNIDADES Dólares de Estados Unidos por Euro                
#> 6 FRECUENCIA                  LABORABLE                                         

# Load data.
bde_series_load(573234, extract_metadata = FALSE)
#> # A tibble: 7,140 × 2
#>    Date       `573234`
#>    <date>        <dbl>
#>  1 1999-01-04     1.18
#>  2 1999-01-05     1.18
#>  3 1999-01-06     1.17
#>  4 1999-01-07     1.16
#>  5 1999-01-08     1.17
#>  6 1999-01-11     1.16
#>  7 1999-01-12     1.15
#>  8 1999-01-13     1.17
#>  9 1999-01-14     1.17
#> 10 1999-01-15     1.16
#> # ℹ 7,130 more rows

# Load multiple series.
bde_series_load(c(573234, 573214),
  series_label = c("US/EUR", "GBP/EUR"),
  extract_metadata = TRUE
)
#> # A tibble: 6 × 3
#>   Date                        `US/EUR`                                 `GBP/EUR`
#>   <chr>                       <chr>                                    <chr>    
#> 1 CÓDIGO DE LA SERIE          DTCCBCEUSDEUR.B                          DTCCBCEG…
#> 2 NÚMERO SECUENCIAL           573234                                   573214   
#> 3 ALIAS DE LA SERIE           TC_1_1.1                                 TC_1_1.4 
#> 4 DESCRIPCIÓN DE LA SERIE     Tipo de cambio. Dólares estadounidenses… Tipo de …
#> 5 DESCRIPCIÓN DE LAS UNIDADES Dólares de Estados Unidos por Euro       Libras e…
#> 6 FRECUENCIA                  LABORABLE                                LABORABLE

wide <- bde_series_load(c(573234, 573214),
  series_label = c("US/EUR", "GBP/EUR")
)

# Show wide output.
wide
#> # A tibble: 7,140 × 3
#>    Date       `US/EUR` `GBP/EUR`
#>    <date>        <dbl>     <dbl>
#>  1 1999-01-04     1.18     0.711
#>  2 1999-01-05     1.18     0.712
#>  3 1999-01-06     1.17     0.708
#>  4 1999-01-07     1.16     0.706
#>  5 1999-01-08     1.17     0.709
#>  6 1999-01-11     1.16     0.704
#>  7 1999-01-12     1.15     0.707
#>  8 1999-01-13     1.17     0.708
#>  9 1999-01-14     1.17     0.706
#> 10 1999-01-15     1.16     0.704
#> # ℹ 7,130 more rows

# Show long output.
long <- bde_series_load(c(573234, 573214),
  series_label = c("US/EUR", "GBP/EUR"),
  out_format = "long"
)

long
#> # A tibble: 14,280 × 3
#>    Date       serie_name serie_value
#>    <date>     <fct>            <dbl>
#>  1 1999-01-04 US/EUR            1.18
#>  2 1999-01-05 US/EUR            1.18
#>  3 1999-01-06 US/EUR            1.17
#>  4 1999-01-07 US/EUR            1.16
#>  5 1999-01-08 US/EUR            1.17
#>  6 1999-01-11 US/EUR            1.16
#>  7 1999-01-12 US/EUR            1.15
#>  8 1999-01-13 US/EUR            1.17
#>  9 1999-01-14 US/EUR            1.17
#> 10 1999-01-15 US/EUR            1.16
#> # ℹ 14,270 more rows

# Use with `ggplot2`.
library(ggplot2)

ggplot(long, aes(Date, serie_value)) +
  geom_line(aes(group = serie_name, color = serie_name)) +
  scale_color_bde_d() +
  theme_tidybde()

# }