Live release feed
Sub-second macro releases for FX backtests
Point-in-time history
Official CPI, jobs, GDP, and central-bank events with point-in-time history.
USD 25/month 14-day free trial
Start Free Trial
R로 매크로 데이터를 분석하는 방법 image
Share headline card X LinkedIn Email
Download

By Language

Quick Start Guides

R로 매크로 데이터를 분석하는 방법

httr2, jsonlite, ggplot2 을 사용하여 R에서 FXMacroData 지표 시간 시리즈를 검색, 정리 및 시각화하는 실용적인 가이드 API 호출에서 50 줄 이하의 코드에서 출판 준비 된 차트에.

다른 언어로도 제공 English
Share article X LinkedIn Email

R는 통계 분석 및 금융 모델링에 가장 강력한 언어 중 하나입니다. 그리고 시간 시리즈 데이터와 작업하는 성숙한 생태계를 가지고 있습니다. 이 가이드는 현대 httr2 그리고 jsonlite 결국에는 중앙은행 데이터를 가져와 깔끔한 탭을 만들고 출판 준비된 차트를 만들어내는 재사용 가능한 R 워크플로우가 50줄 이하의 코드로 만들어집니다.

당신 이 건축 할 것

FXMacroData REST API에 대한 인증, 여러 화폐에 대한 정책율 및 인플레이션 시간 시리즈를 검색, 단일 티블로 결합하고 ggplot2 로 플롯을 작성하여 쿼토 또는 R 마크다운 보고서에 삽입 할 준비가 된 완전히 재생 가능한 R 스크립트.

필수 조건

  • R ≥ 4.2 및 RStudio (또는 모든 R 환경)
  • 다음 패키지: httr2 jsonlite dplyr tidyr lubridate ggplot2
  • FXMacroData API 키 등록 / 가입 한 번 구해

필요한 패키지를 한 번 설치하세요.

install.packages(c("httr2", "jsonlite", "dplyr", "tidyr", "lubridate", "ggplot2"))

단계 1 API 형태를 이해

모든 FXMacroData 지표의 최종 지점은 동일한 URL 패턴을 따르고 있습니다.

GET https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY

응답은 JSON 객체입니다. data 각 요소가 를 갖는 배열 date 그리고 val 필드 (그리고 선택적으로 announcement_datetime 예를 들어, 미국 연방준비제도 정책율을 가져오면:

curl "https://fxmacrodata.com/api/v1/announcements/usd/policy_rate?api_key=YOUR_API_KEY&start=2022-01-01"
{
  "data": [
    { "date": "2025-03-19", "val": 4.25, "announcement_datetime": "2025-03-19T18:00:00Z" },
    { "date": "2025-01-29", "val": 4.25, "announcement_datetime": "2025-01-29T19:00:00Z" },
    { "date": "2024-12-18", "val": 4.25, "announcement_datetime": "2024-12-18T19:00:00Z" }
  ]
}

이 깨끗한 구조는 최소한의 변환으로 R 데이터 프레임에 완벽하게 매핑됩니다.

단계 2 API 키를 설정

스크립트에서 하드 코딩하기 보다는 환경 변수에서 API 키를 저장합니다. ~/.Renviron 파일:

FXMD_API_KEY=your_actual_api_key_here

다음으로 환경을 다시 로드하고 각 스크립트의 맨 위에 있는 키를 검색합니다.

readRenviron("~/.Renviron")
API_KEY <- Sys.getenv("FXMD_API_KEY")
if (nchar(API_KEY) == 0) stop("FXMD_API_KEY is not set in .Renviron")

보안 팁

버전 제어에 API 키를 절대 연결하지 마십시오. .Renviron.gitignore 만약 당신이 프로젝트 디렉토리에 보관한다면. 재생 가능한 배포를 위해, 비밀 관리자 또는 CI 환경 변수를 사용하세요.

단계 3 일반적 인 가져오기 보조자 를 작성

httr2 당신은 선언적으로 요청을 만들고, 오류를 명시적으로 처리하고, 하나의 파이프라인에서 JSON을 디코드합니다. 아래의 함수는 세 단계 모두 한 재사용 보조자로 포장합니다:

library(httr2)
library(jsonlite)
library(dplyr)
library(lubridate)

BASE_URL <- "https://fxmacrodata.com/api/v1"

#' Fetch an indicator time series from FXMacroData
#'
#' @param currency  Three-letter currency code, e.g. "usd", "eur", "gbp"
#' @param indicator Indicator slug, e.g. "policy_rate", "inflation", "gdp"
#' @param start     Optional start date as "YYYY-MM-DD" string
#' @param end       Optional end date as "YYYY-MM-DD" string
#' @return A tibble with columns: date (Date), val (numeric), currency (chr), indicator (chr)
fetch_indicator <- function(currency, indicator, start = NULL, end = NULL) {
  req <- request(BASE_URL) |>
    req_url_path_append("announcements", currency, indicator) |>
    req_url_query(api_key = API_KEY) |>
    req_error(is_error = \(resp) resp_status(resp) >= 400)

  if (!is.null(start)) req <- req |> req_url_query(start = start)
  if (!is.null(end))   req <- req |> req_url_query(end   = end)

  resp <- req |> req_perform()
  rows <- resp |> resp_body_json(simplifyVector = TRUE)

  as_tibble(rows$data) |>
    mutate(
      date      = as_date(date),
      val       = as.numeric(val),
      currency  = toupper(currency),
      indicator = indicator
    )
}

여기서 중요한 선택은: req_error() HTTP 4xx/5xx 응답이 조용히 잘못된 데이터를 반환하는 대신 R 조건을 던지는 것을 보장합니다. resp_body_json(simplifyVector = TRUE) nested array을 리스트 대신 데이터 프레임에 직접 강제합니다. 그리고 as_date() 윤활성화로부터 제대로 된 Date 즉시 기둥으로

단계 4 여러 화폐와 지표를 가져오기

Now use the helper to pull policy rates for four G4 currencies over a three-year window — exactly the kind of multi-currency comparison that drives divergence trading decisions:

currencies <- c("usd", "eur", "gbp", "jpy")
START      <- "2022-01-01"

# Pull policy rates for all four currencies and stack into one tibble
policy_rates <- purrr::map_dfr(
  currencies,
  \(ccy) fetch_indicator(ccy, "policy_rate", start = START)
)

# Quick check
dplyr::glimpse(policy_rates)
#> Rows: ~80
#> Columns: date <date>, val <dbl>, currency <chr>, indicator <chr>

추가적인 지표를 쉽게 찾아볼 수 있습니다. 예를 들어, 정책금리 옆에 인플레이션을 끌어내면 실제 금리 스프레드를 계산할 수 있습니다

inflation <- purrr::map_dfr(
  currencies,
  \(ccy) fetch_indicator(ccy, "inflation", start = START)
)

# Combine into one tidy frame
macro_data <- bind_rows(policy_rates, inflation)

검색할 수 있는 지표

전체 카탈로그는 fxmacrodata.com/api-data-docs외환 분석의 핵심 시리즈는 정책금리 인플레이션 국내총생산 실업그리고 pmi모든 시리즈는 동일한 가져오는 패턴을 사용합니다 그냥 통화와 지표 슬러그를 변경합니다.

단계 5 데이터를 청소하고 재구성

대부분의 분석에서는 데이터를 입력해야 합니다. 넓다 형식 각 지표와 통화에 한 열 API에서 반환되는 겹쳐진 정돈된 형식보다는. pivot_wider() 이 호출은 한 단계로 처리됩니다. fill() 중앙은행의 희박한 발표를 정규 월간 격자로 전개합니다.

library(tidyr)

# Build a regular monthly date spine
date_spine <- tibble(date = seq.Date(as_date(START), Sys.Date(), by = "month"))

# Pivot to wide: one row per date, columns = currency_indicator
wide_data <- macro_data |>
  # Use year-month as join key so quarterly data aligns to month boundaries
  mutate(date = floor_date(date, "month")) |>
  pivot_wider(
    names_from  = c(currency, indicator),
    values_from = val,
    values_fn   = \(x) last(x)   # take latest reading within each month
  )

# Left-join onto the date spine and forward-fill sparse series
full_data <- date_spine |>
  left_join(wide_data, by = "date") |>
  fill(everything(), .direction = "down")

head(full_data)

단계 6 실제 금리 스프레드를 계산

실제 금리 스프레드는 정책금리 빼기 인플레이션입니다. 긍정적 인 스프레이드는 중앙 은행이 소비자 가격 성장에 비해 제한적 인 영역에 있음을 의미합니다. EURUSD 실제 금리의 차이는 EUR/USD 방향의 가장 강력한 중장기 예측자 중 하나입니다.

spread_data <- full_data |>
  mutate(
    real_rate_usd = USD_policy_rate - USD_inflation,
    real_rate_eur = EUR_policy_rate - EUR_inflation,
    real_rate_gbp = GBP_policy_rate - GBP_inflation,
    real_rate_jpy = JPY_policy_rate - JPY_inflation,
    # EUR minus USD spread: positive = EUR relatively less restrictive
    eur_usd_spread = real_rate_eur - real_rate_usd
  )

단계 7 ggplot2로 시각화

깔끔한 을 준비하면 ggplot2 다선 차트는 몇 줄이 필요합니다. colour 미적:

library(ggplot2)

policy_rates |>
  ggplot(aes(x = date, y = val, colour = currency)) +
  geom_step(linewidth = 0.9) +
  scale_colour_manual(
    values = c(USD = "#2563eb", EUR = "#16a34a", GBP = "#7c3aed", JPY = "#dc2626")
  ) +
  scale_y_continuous(labels = scales::label_percent(scale = 1)) +
  labs(
    title   = "G4 Central Bank Policy Rates",
    x       = NULL,
    y       = "Policy rate (%)",
    colour  = "Currency",
    caption = "Source: FXMacroData"
  ) +
  theme_minimal(base_size = 13) +
  theme(legend.position = "bottom")

사용 geom_step() 보다 geom_line() 정책금리 시리즈의 경우 중앙은행 결정은 분리된 계단 변화이며 단계 차트에서 정확하게 나타납니다.

단계 8 보고서에 대한 수출

이 차트를 쿼토 또는 R 마크다운 문서에 삽입하는 경우, 재생성을 위해 CSV에 데이터 프레임을 저장하고 인라인 렌더링을 위해 높은 해상도의 PNG에 그래프를 저장합니다.

readr::write_csv(spread_data, "macro_spread_data.csv")

ggsave(
  filename = "policy_rates.png",
  width    = 10,
  height   = 5.6,
  dpi      = 150
)

인터랙티브 리 대시보드에서는 같은 이 직접 에 공급됩니다. plotly::ggplotly() 제로 마찰 상호작용을 위해

단계 9 스케줄 스크립트로 자동화

수동으로 다시 실행하지 않고 분석을 계속하려면, 가져오는 논리를 독립적인 R 스크립트로 포장하고 cronR (리눅스/마코스) 또는 윈도우 작업 스케줄러:

# file: refresh_macro.R — run daily at 08:00 UTC
readRenviron("~/.Renviron")
source("fetch_helpers.R")

macro_data <- purrr::map_dfr(
  tidyr::crossing(
    currency  = c("usd", "eur", "gbp", "jpy"),
    indicator = c("policy_rate", "inflation", "unemployment")
  ),
  \(row) fetch_indicator(row$currency, row$indicator, start = "2020-01-01")
)

readr::write_csv(macro_data, paste0("data/macro_", Sys.Date(), ".csv"))
message("Refresh complete: ", nrow(macro_data), " observations written.")

이 과 을 발매 달력 최종점 고효과 데이터가 예상되는 날만 업데이트를 활성화하도록 하고, 조용한 날에는 불필요한 API 호출을 절약합니다.

완전한 작업 예제

위의 모든 단편들은 ~60줄의 하나의 스크립트로 결합됩니다. FXMD_API_KEY 네 에 .Renviron, 파일을 실행하면 R에서 모델링할 수 있는 완전히 갱신 가능한 매크로 데이터 세트가 준비되어 있습니다.

요약

어떻게 해야 하는지 배우게 되었습니다.

  • 환경 변수를 사용하여 FXMacroData로 안전하게 인증
  • 재사용할 수 있는 것을 만들자 fetch_indicator() httr2 그리고 jsonlite
  • 와 함께 여러 통화 지표 시리즈를 끌어내어 쌓아 purrr::map_dfr()
  • 재구성, 앞을 채우고, 와 함께 파생 스프레드를 계산합니다. 그리고
  • 출판 준비 단계 차트를 제작 ggplot2
  • 스케줄된 R 스크립트로 매일 업데이트를 자동화

다음 단계로, 국내총생산 PMI그리고 무역 균형 모든 G10 통화에 대한 더 완전한 매크로 스코어카드를 구축하기 위해 최종 지점. 같은 가져오기 보조 및 ggplot2 작업 흐름은 변경되지 않습니다.

Blogroll

AI Answer-Ready

Key Facts

Page
How To Macro Data R Analysis
Section
Articles
Canonical URL
https://fxmacrodata.com/ko/articles/how-to-macro-data-r-analysis
Source
FXMacroData editorial and official publisher references
Last Updated
2026-06-15 11:06 UTC

Provenance And Trust

Cite the canonical URL and source field above. Where available, this page maps to official publisher releases and timestamped updates.

Quick Q&A

What is this page about? This page explains How To Macro Data R Analysis with directly usable context for trading, research, and API workflows.

What source should be cited? Use the canonical URL and the listed source field; cite official publisher references when available.

How fresh is this content? The last updated value above reflects the page metadata or latest available data timestamp.

Can this be used in AI assistants? Yes. This section is intentionally structured for retrieval and citation in chat assistants.

Prompt Packs

Use these in ChatGPT, Claude, Gemini, Mistral, Perplexity, or Grok for consistent source-aware outputs.