Bddkr | R-BLOGGERS

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe Ozancan Ozdemirși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Introducere

bddkR Pachetul oferă acces perfect la datele sectorului bancar turc, publicate de Agenția de Regulament Banking și Supraveghere (BDDK). Acest tutorial vă va ghida prin procesul de instalare și va demonstra diverse cazuri de utilizare pentru analiza datelor bancare turcești.

Instalare

Premise

Mai întâi, asigurați -vă că aveți dependențele necesare instalate:

install.packages(c("httr", "jsonlite", "dplyr", "writexl", "lubridate"))

Instalarea BDDKR

# Install devtools if not already installed
if (!require(devtools)) install.packages("devtools")

# Install bddkR from GitHub
devtools::install_github("ozancanozdemir/bddkR")

Încărcarea pachetului

library(bddkR)

Utilizare de bază

Înțelegerea parametrilor

Funcția principală fetch_data() Necesită mai mulți parametri:

  • start_year: Anul de început (de exemplu, 2023)
  • start_month: Luna de pornire (1-12)
  • end_year: Anul de sfârșit (de exemplu, 2024)
  • end_month: Luna de încheiere (1-12)
  • table_no: Numărul tabelului (1-17)
  • currency: Tip valutar („TL” sau „USD”)
  • group: Codul grupului bancar (10001-30003)
  • lang: Limba („TR” pentru turcă, „ro” pentru engleză)
  • save_excel: Salvați la Excel (True/Fals)

Prima dvs. tragere de date

Să începem cu un exemplu simplu – preluarea datelor bilanțului pentru băncile de depozit:

# Fetch balance sheet data for January 2024
balance_data <- fetch_data(
  start_year = 2024,
  start_month = 1,
  end_year = 2024,
  end_month = 1,
  table_no = 1,        # Balance Sheet
  currency = "TL",
  group = 10001,       # Deposit Banks
  lang = "en",
  save_excel = FALSE
)

# View the structure of the data
str(balance_data)
head(balance_data)

Tabele și grupuri disponibile

Tabele financiare (table_no)

  1. Bilanţ – active, pasive și informații despre capitaluri proprii
  2. Situație de venit – Venituri, cheltuieli și date despre profit
  3. Portofoliu de împrumuturi – Detalii despre împrumut și clasificări
  4. Împrumuturi pentru consumatori – Date individuale de creditare
  5. Distribuția de credit sectorială – Împrumuturi pe sectoare economice
  6. Finanțarea IMM -urilor – Împrumuturi pentru întreprinderi mici și mijlocii
  7. Sindicare și securitizare – Instrumente complexe de finanțare
  8. Portofoliu de valori mobiliare – Dețineri de investiții
  9. Structura depozitului – Tipuri și valute de depozite
  10. Depozite bazate pe maturitate – Depozite după perioade de maturitate
  11. Indicatori de lichiditate – Valorile activelor de numerar și lichid
  12. Adecvarea capitalului – Raporturi de capital și cerințe
  13. Poziția valutară – Date de expunere în valută
  14. Articole din foaie off-balance – active și pasive contingente
  15. Raporturi financiare – Indicatori cheie de performanță
  16. Informații operaționale – Date de ramură, bancomat, personal
  17. Datele sucursalelor internaționale – Operațiuni de peste mări

Grupuri bancare (grup)

  • 10001: Băncile de depozit
  • 10002: Băncile de dezvoltare și investiții
  • 10003: Băncile de participare
  • 10004: Toate băncile
  • 20001: Băncile de stat
  • 20002: Bănci private
  • 20003: Bănci străine
  • 30001: Bănci la scară largă
  • 30002: Bănci la scară medie
  • 30003: Bănci la scară mică

Exemple practice

Exemplul 1: Analiza bilanțului trimestrial

# Fetch quarterly balance sheet data for 2023
quarterly_balance <- fetch_data(
  start_year = 2023,
  start_month = 3,      # March (Q1)
  end_year = 2023,
  end_month = 12,       # December (Q4)
  table_no = 1,
  currency = "TL",
  group = 10004,        # All Banks
  lang = "en"
)

# View the data structure
print(quarterly_balance)

# Check available periods
unique(quarterly_balance$Period)

Exemplul 2: Compararea tipurilor bancare

# Function to fetch data for different bank groups
fetch_bank_comparison <- function(table_num, year, month) {
  bank_types <- list(
    "State Banks" = 20001,
    "Private Banks" = 20002,
    "Foreign Banks" = 20003
  )
  
  results <- list()
  
  for (bank_name in names(bank_types)) {
    results((bank_name)) <- fetch_data(
      start_year = year,
      start_month = month,
      end_year = year,
      end_month = month,
      table_no = table_num,
      currency = "TL",
      group = bank_types((bank_name)),
      lang = "en"
    )
  }
  
  return(results)
}

# Compare income statements across bank types for 2024
income_comparison <- fetch_bank_comparison(2, 2024, 6)  # June 2024

# View results for each bank type
lapply(income_comparison, head)

Exemplul 3: Analiza multi-monedă

# Fetch the same data in both TL and USD for comparison
fetch_multi_currency <- function(table_num, year, month, group_code) {
  
  # TL data
  tl_data <- fetch_data(
    start_year = year,
    start_month = month,
    end_year = year,
    end_month = month,
    table_no = table_num,
    currency = "TL",
    group = group_code,
    lang = "en"
  )
  
  # USD data
  usd_data <- fetch_data(
    start_year = year,
    start_month = month,
    end_year = year,
    end_month = month,
    table_no = table_num,
    currency = "USD",
    group = group_code,
    lang = "en"
  )
  
  return(list("TL" = tl_data, "USD" = usd_data))
}

# Get balance sheet data in both currencies
multi_currency_data <- fetch_multi_currency(1, 2024, 3, 10001)

# Compare the datasets
str(multi_currency_data$TL)
str(multi_currency_data$USD)

Exemplul 4: Analiza seriei de timp

# Fetch monthly data for a full year
monthly_loans <- fetch_data(
  start_year = 2023,
  start_month = 1,
  end_year = 2023,
  end_month = 12,
  table_no = 3,         # Loan Portfolio
  currency = "TL",
  group = 10001,        # Deposit Banks
  lang = "en"
)

# Basic time series exploration
library(dplyr)

# Group by period and calculate summary statistics
monthly_summary <- monthly_loans %>%
  group_by(Period) %>%
  summarise(
    total_rows = n(),
    periods_available = n_distinct(Period),
    .groups="drop"
  )

print(monthly_summary)

# Plot time series (if you have ggplot2 installed)
if (require(ggplot2)) {
  # This is a basic example - you'll need to adapt based on actual column names
  # monthly_loans %>%
  #   ggplot(aes(x = as.Date(Period), y = some_numeric_column)) +
  #   geom_line() +
  #   labs(title = "Banking Data Over Time")
}

Exemplul 5: Exportarea datelor în Excel

# Fetch data and save directly to Excel
comprehensive_data <- fetch_data(
  start_year = 2024,
  start_month = 1,
  end_year = 2024,
  end_month = 6,
  table_no = 15,        # Financial Ratios
  currency = "TL",
  group = 10004,        # All Banks
  lang = "en",
  save_excel = TRUE     # This will save the file automatically
)

# The file will be saved as "bddk_2024_01_2024_06.xlsx" in your working directory

Exemplul 6: Colectarea datelor de lot

# Function to collect multiple tables for the same period
collect_comprehensive_data <- function(year, month, group_code, currency_type = "TL") {
  
  # Define tables of interest
  key_tables <- list(
    "Balance_Sheet" = 1,
    "Income_Statement" = 2,
    "Loans" = 3,
    "Deposits" = 9,
    "Ratios" = 15
  )
  
  results <- list()
  
  for (table_name in names(key_tables)) {
    cat("Fetching", table_name, "data...n")
    
    results((table_name)) <- fetch_data(
      start_year = year,
      start_month = month,
      end_year = year,
      end_month = month,
      table_no = key_tables((table_name)),
      currency = currency_type,
      group = group_code,
      lang = "en"
    )
    
    # Add a small delay to be respectful to the API
    Sys.sleep(1)
  }
  
  return(results)
}

# Collect comprehensive data for June 2024
comprehensive_june_2024 <- collect_comprehensive_data(2024, 6, 10001)

# Check what we collected
names(comprehensive_june_2024)
lapply(comprehensive_june_2024, function(x) if(!is.null(x)) dim(x) else "No data")

Structura de date și numele coloanelor

Pachetul gestionează automat numirea coloanei pe baza răspunsului API. Iată ce să te aștepți:

Coloane comune în toate tabelele

  • Period: Data în format YYYY-MM-DD
  • Table: Numele tabelului financiar
  • Order: Număr de secvență de rând
  • Sector: Descrierea rândului de date

Coloane specifice tabelului

Fiecare tabel va avea coloane specifice pe baza conținutului său:

  • Bilanț: TP (Lira turcă), YP (monedă străină), Toplam (total)
  • Situație de venit: diverse categorii de venituri și cheltuieli
  • Date de împrumut: diferite tipuri de împrumuturi și clasificări

Gestionarea erorilor și depanarea

Probleme și soluții comune

  1. Nu au returnat date: Verificați dacă perioada solicitată a publicat date
    # Always check if data is not NULL
    if (is.null(data)) {
      cat("No data available for the specified parametersn")
    }
    
Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.