---
title: "CBRT Data on Turkish Economy"
author: "Erol Taymaz"
date: "03 November 2024"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{CBRT Data on Turkish Economy}
  %\VignetteEngine{knitr::rmarkdown}
  \usepackage[utf8]{inputenc}
---


## Package

The package includes functions for finding, and downloading data
from the CBRT's database.

You need a __key__ to download data from the CBRT's database. To get the __key__, please registed at the CBRT's Electronic Data Delivery System (URL: https://evds2.tcmb.gov.tr/index.php?/). Registration is free of charge and takes only a few minutes.

If you create an object called __myCBRTKey__, you do not need to enter it everytime:

`myCBRTKey <-` _your-key_


## Structure of the data

All __data series__ (variables) are classified into __data groups__, and data groups into __data categories__. There are 44 
data categories (including the archieved ones), 496 data groups, 
and 40,826 data series.


## Finding variables

The CBRT data includes more than 40,826 variables (data series).
To find variables, use the `searchCBRT` function:

```{r, p0, eval = FALSE}
searchCBRT(c("production", "labor", "labour"))
searchCBRT(c("production", "labor", "labour"), field = "series")
searchCBRT(c("production", "labor", "labour"), tags = TRUE)
```

The package contains the lists of all data categories, data groups, and
data series, as of 03 November 2024. You can update the list
by the following commands:

```{r, p1, eval = FALSE}
allCBRTCategories <- getAllCategoriesInfo()
allCBRTGroups <- getAllGroupsInfo()
allCBRTSeries <- getAllSeriesInfo()
```

After identifying the data group or data series, you can get 
some information about the data by `showGroupInfo` function:

```{r, p2, eval = FALSE}
showGroupInfo("bie_apifon")
```

If you want to get only names of series in a data group, use the following command:

```{r, p3, eval = FALSE}
showSeriesNames("bie_apifon")
```

## Downloading the data

You can download either one or more data series you specified, 
or all data series in a data group. 

To download individual data series, use the `getDataSeries` function:

```{r, p4, eval = FALSE}
mySeries <- getDataSeries("TP.D1TOP")
mySeries <- getDataSeries(c("TP.D1TOP", "TP.D2HAZ", "TP.D4TCMB"))
mySeries <- getDataSeries(c("TP.D1TOP", "TP.D2HAZ", "TP.D4TCMB"), startDate="01-01-2010")
```

To download all data series in a group, use the `getDataGroup` function:

```{r, p5, eval = FALSE}
myData <- getDataGroup("bie_dbafod")
```
The `freq` parameter defines the frequency of the data. If you do not define any frequency, the default frequency will be used.

The `aggType` paremeter defines the method to be used to aggregate data series from high frequency to low frequency (for example, weekly data to monthly data). If no aggregation method is defined, the default will be used. (For the default values, use the `showGroupInfo` function.) 

For example, if you define monthly frequency for weekly data, and "sum" as the aggregation method, then the monthly totals will be returned. Since a data group includes more than one series, the `getDataGroup` function does not have any `aggType` parameter, and it aggregates data series by using their default aggregation method.

The following frequencies are defined (from high frequency to low frequency):

* `1` Day
* `2` Work day
* `3` Week
* `4` Biweekly
* `5` Month
* `6` Quarter
* `7` Six months
* `8` Year

The following aggregation methods are available:

* `avg` Average value
* `first` First observation
* `last` Last observation
* `max` Maximum value
* `min` Minimum value
* `sum` Sum

The myData object is in __data.table__ and __data.frame__ classes, and it includes a __time__ variable, and data series. The __time__ variable will be either in `date` or `numeric` format depending on its frequency.

