R로 OECD 최신데이터 불러오기

데이터
API
(작성중)
Published

2025.06.13

Modified

2025.06.13

주의

아직 미완성된 게시물입니다.

1 개요

library(tidyverse)
library(formattable)
library(httr)
library(jsonlite)


library(haven)
library(lcmm)
library(gridExtra)
library(grid)
library(cowplot)
library(moonBook)
library(texreg)

테스트 문장입니다 (Abrahamson, 2011).

테스트 문장입니다 (Abrahamson, 2011, p. 123).

Abrahamson (2011) 테스트 문장입니다.

가나다라 마바사.

data_url <- "https://sdmx.oecd.org/public/rest/data/OECD.WISE.INE,DSD_WISE_IDD@DF_IDD,/JPN+ITA+FRA+DEU+AUT+NOR+CAN+FIN+DNK+SWE+USA+GBR+AUS+KOR.A.INC_DISP_GINI..._T.METH2012..?startPeriod=2010&endPeriod=2023&dimensionAtObservation=AllDimensions"
response <- GET(data_url)
json_text <- content(response, as = "text", encoding = "UTF-8")
json_data <- fromJSON(json_text)

obs_dim <- json_data$structure$dimensions$observation

time_values <- obs_dim$values[[10]]
time_labels <- time_values$id

ref_area_dim <- obs_dim$values[[1]]
ref_area_labels <- ref_area_dim$id

series_list <- obs_dim$values[[1]]$id
results <- data.frame()

obs <- json_data$data$observations
dims <- json_data$structure$dimensions$observation

# 각 차원의 인덱스를 실제 값으로 매핑
get_label <- function(dim_index, value_index) {
  dims[[dim_index + 1]]$values[[value_index + 1]]$id
}

# 결과 저장용
results <- data.frame()

# 관측값 순회하며 정리
for (key in names(obs)) {
  key_parts <- as.numeric(strsplit(key, ":")[[1]])
  time <- get_label(0, key_parts[1])
  country <- json_data$structure$dimensions$series[[1]]$values[[key_parts[2] + 1]]$id
  value <- obs[[key]][[1]]
  
  results <- rbind(results, data.frame(country = country, year = time, gini = value))
}

# 보기 좋게 정렬
results <- results %>% arrange(country, year)

print(results)

References

Abrahamson, P. (2011) The Welfare Modelling Business Revisited: The Case of East Asian Welfare Regimes.” In Hwang, G.-J. (ed), Edward Elgar Publishing.