UN Comtrade における貿易品目コード処理

伊藤 岳

最終更新:7/31/2017

UN Comtrade は貿易に関する実証研究で広く用いられるデータセットの1つであり,基本的に無料で利用できる. このデータでは,ウェブ上のインターフェースやAPI (Application Program Interface) 国家・年・貿易品目・輸出/輸入等を詳細に指定してデータを取得できる.

実際の分析では,HSコードやSITCコードのような異なる貿易品目コード (commodity code)・バージョン間で類似する貿易品目を抽出することがしばしば必要になる. 以下では,こうした作業で必要になる貿易品目コードの取得・操作方法をRを用いて例示する.ただし,Comtrade のウェブサイトにも注意がある通り,異なる貿易品目コードやバージョンの間で「類似」する品目を抽出することはできても,完全に「一致」する品目を取得することが常に可能とは限らない.

まず,ワーキング・ディレクトリを指定し,必要なパッケージを読み込む (インストールしていない場合は,先にインストールする).

## Set working directory
# setwd() ## needs to be updated in your own environment

## Packages
library(readxl)   
library(comtradr) 
library(stringr)  
library(tidyverse)

次いで,UN Comtrade のウェブサイトから貿易品目対応表を取得する.zip圧縮されたエクセルファイルとして提供されているので,一旦ローカルにダウンロードする.

## Download zipped data
temp <- "un_table.zip"
zip_url = "https://unstats.un.org/unsd/trade/conversions/Complete%20correlations%20of%20HS%20SITC%20BEC.zip"
download.file(zip_url, temp)
unzip(temp)

このzipファイルを解凍の上,Rに読み込んで概観する.

## Read correspondence table
tbl_corr = read_excel("Complete correlations of HS SITC BEC - compiled at 03 Dec 2015.xlsx")
names(tbl_corr) = str_to_lower(names(tbl_corr))
glimpse(tbl_corr)   ## Skim the entries
## Observations: 44,738
## Variables: 10
## $ hs92  <chr> "010111", "010111", "010111", "010111", "010120", "01012...
## $ hs96  <chr> "010111", "010111", "010111", "010111", "010120", "01012...
## $ hs02  <chr> "010110", "010110", "010110", "010110", "010110", "01011...
## $ hs07  <chr> "010110", "010110", "010110", "010110", "010110", "01011...
## $ hs12  <chr> "010121", "010121", "010130", "010130", "010121", "01012...
## $ bec4  <chr> "41", "41", "41", "41", "41", "41", "41", "41", "111", "...
## $ sitc1 <chr> "0015", "0015", "0015", "0015", "0015", "0015", "0015", ...
## $ sitc2 <chr> "0015", "0015", "0015", "0015", "0015", "0015", "0015", ...
## $ sitc3 <chr> "00151", "00152", "00151", "00152", "00151", "00152", "0...
## $ sitc4 <chr> "0015", "0015", "0015", "0015", "0015", "0015", "0015", ...
## Delete zip
# unlink(temp)

これで,品目コード対応表を取得し,Rに読み込むことができた. SITC rev.1 の241を例に,対応する他の貿易品目コードを取得しよう.

## Take SITC rev.1 241 as an example
commoditydf = ct_commodities_table("SITCrev1") %>% tbl_df ## extract SITC rev.1
sitc2look_up = "241"    ## change this line to loop up other commodity codes
sitc_tbl = commodity_lookup(sitc2look_up, commoditydf) %>%  ## What's in code 241?
    tbl_df %>%
    rename(col = `241.commodity`)   %>%
    separate(col = col, into = c("code", "description"), sep = " - ")
sitc_tbl
## # A tibble: 9 x 2
##    code                                     description
## * <chr>                                           <chr>
## 1   241                            Fuel wood & charcoal
## 2  2411                          Fuel wood & wood waste
## 3  2412                                   Wood charcoal
## 4 51241                       Oxygen function aldehydes
## 5 66241                                 Building bricks
## 6  7241                  Television broadcast receivers
## 7 81241           Illuminating and signalling glassware
## 8 86241 Photographic plates/films in the flat unexposed
## 9 89241                       Transfers (decalcomanias)
## Which numbers correspond to SITC rev.1 241?
out_tbl = tbl_corr %>%
    mutate(sitc1_d3 = str_sub(sitc1, 1, 3)) %>% ## add 3-digit SITC code
    filter(sitc1_d3 == sitc2look_up)    %>%     ## filter by sitc2look_up
    left_join(sitc_tbl, by = c("sitc1" = "code"))   %>% ## join w/ sitc_tbl above
    select(description, contains("sitc"), contains("hs"))
out_tbl %>% as.data.frame
##              description sitc1 sitc2 sitc3 sitc4 sitc1_d3   hs92   hs96
## 1 Fuel wood & wood waste  2411 24501 24501 24501      241 440110 440110
## 2 Fuel wood & wood waste  2411 24603  2462  2462      241 440130 440130
## 3 Fuel wood & wood waste  2411 24603  2462  2462      241 440130 440130
## 4          Wood charcoal  2412 24502 24502 24502      241 440200 440200
## 5          Wood charcoal  2412 24502 24502 24502      241 440200 440200
##     hs02   hs07   hs12
## 1 440110 440110 440110
## 2 440130 440130 440131
## 3 440130 440130 440139
## 4 440200 440210 440210
## 5 440200 440290 440290

以上のコードで,SITC (rev.1) のコード241に対応する品目の内容 (description) と下位分類 (桁数の多い分類コード) と,異なるバージョンのSITCとHSコードにおいて対応する品目コードを取得することができた.