Military: 軍事費の国際比較, julia ver. 6

I.何をする?

 

次のデータより軍事費を国際比較します。なお、集計はJuliaす。

 

SIPRI Military Expenditure Database

 

II.2018年のGDPに対する軍事費の割合上位30ヵ国の一覧

 

軍事費の対GDP比率が高い国は、国内外に紛争があったり、近隣諸国と緊張関係にあったりするのでしょうが、詳細を知きる地域は少なく、世界について無知であることを改めて実感しました。

 

│ Row │ country           │ 2018    │
│     │ String            │ Float64 │
├─────┼───────────────────┼─────────┤
│ 1   │ Saudi Arabia      │ 8.8     │
│ 2   │ Oman              │ 8.2     │
│ 3   │ Algeria           │ 5.3     │
│ 4   │ Kuwait            │ 5.1     │
│ 5   │ Lebanon           │ 5.0     │
│ 6   │ Armenia           │ 4.8     │
│ 7   │ Jordan            │ 4.7     │
│ 8   │ Israel            │ 4.3     │
│ 9   │ Pakistan          │ 4.0     │
│ 10  │ Russia            │ 3.9     │
│ 11  │ Azerbaijan        │ 3.8     │
│ 12  │ Ukraine           │ 3.8     │
│ 13  │ Uzbekistan        │ 3.6     │
│ 14  │ Bahrain           │ 3.6     │
│ 15  │ Namibia           │ 3.3     │
│ 16  │ USA               │ 3.2     │
│ 17  │ Colombia          │ 3.2     │
│ 18  │ Morocco           │ 3.1     │
│ 19  │ Singapore         │ 3.1     │
│ 20  │ Mauritania        │ 3.0     │
│ 21  │ Mali              │ 2.9     │
│ 22  │ Myanmar           │ 2.9     │
│ 23  │ Botswana          │ 2.8     │
│ 24  │ Iran              │ 2.7     │
│ 25  │ Iraq              │ 2.7     │
│ 26  │ Korea, South      │ 2.6     │
│ 27  │ Congo, Repubic of │ 2.5     │
│ 28  │ Guinea            │ 2.5     │
│ 29  │ Niger             │ 2.5     │
│ 30  │ Turkey            │ 2.5     │
│ 31  │ Ecuador           │ 2.4

 

スクリプト

 

# using libraries
using Gadfly
using CSV, DataFrames
# load the data
mil = CSV.read("militaryGdp3.csv")
# show the column names
names(mil)
# select 2018
mil_2018 = mil[[:country, Symbol("2018")]]
# arrange the data in a descending order
names(mil_2018)
mil_2018_sorted = sort!(mil_2018, cols = [order(Symbol("2018"), rev = true)])
# show the first 30
showall(mil_2018_sorted)
mil_2018_sorted[24:54,:]

 

III.2018年の軍事費(米国ドル)の上位30ヵ国の一覧

 

米国の軍事費は、IIで示したようにGDP比3.2%16位ですが、GDPが大きいので額としては断然世界一になります。

サウジアラビアは、GDP比でも額でも上位です。

 

30×2 DataFrame
│ Row │ country      │ 2018      │
│     │ String       │ Float64   │
├─────┼──────────────┼───────────┤
│ 1   │ USA          │ 6.48798e5 │
│ 2   │ China        │ 2.49997e5 │
│ 3   │ Saudi Arabia │ 67554.7   │
│ 4   │ India        │ 66510.3   │
│ 5   │ France       │ 63799.7   │
│ 6   │ Russia       │ 61387.5   │
│ 7   │ UK           │ 49997.2   │
│ 8   │ Germany      │ 49470.6   │
│ 9   │ Japan        │ 46618.0   │
│ 10  │ Korea, South │ 43070.0   │
│ 11  │ Italy        │ 27807.5   │
│ 12  │ Brazil       │ 27766.4   │
│ 13  │ Australia    │ 26711.8   │
│ 14  │ Canada       │ 21620.6   │
│ 15  │ Turkey       │ 18967.1   │
│ 16  │ Spain        │ 18248.3   │
│ 17  │ Israel       │ 15946.8   │
│ 18  │ Iran         │ 13194.2   │
│ 19  │ Poland       │ 11596.2   │
│ 20  │ Pakistan     │ 11375.5   │
│ 21  │ Netherlands  │ 11242.8   │
│ 22  │ Singapore    │ 10841.0   │
│ 23  │ Taiwan       │ 10713.7   │
│ 24  │ Colombia     │ 10602.9   │
│ 25  │ Algeria      │ 9583.7    │
│ 26  │ Indonesia    │ 7437.2    │
│ 27  │ Kuwait       │ 7296.3    │
│ 28  │ Norway       │ 7067.1    │
│ 29  │ Thailand     │ 6829.2    │
│ 30  │ Oman         │ 6710.0    │

 

スクリプト

 

# in constant(2017)USD
# using libraries
using Gadfly
using CSV, DataFrames
# load the data
mil2 = CSV.read("MilitaryExpenditurePercentageGDP - inMillionsOfUsDollars.csv")
# show the column names
names(mil2)
# select 2018
mil2_2018 = mil2[[:country, Symbol("2018")]]
# arrange the data in a descending order
names(mil2_2018)
mil2_2018_sorted = sort!(mil2_2018, cols = [order(Symbol("2018"), rev = true)])
# show the first 30
showall(mil2_2018_sorted)
mil2_2018_top30 = mil2_2018_sorted[23:52,:]
showall(head(mil2_2018_top30, 50))

 

IV.軍事費の対GDP比の推移のグラフを描く

 

1.サウジアラビア

 

 

まだJuliaに慣れないので、いろいろ苦労しました。

たて長にしてからSymbol列をnumericにする方法がわかりませんので、先によこ長データで求める年を選んでから、たて長のデータにしました。

国名で選び出す式は次です。

 

@where(mil_1996_long, :country .== "Saudi Arabia") 

 

スクリプト

 

# using libraries
using Gadfly
using CSV, DataFrames
using DataFramesMeta
# load the data
mil = CSV.read("militaryGdp3.csv")
mil_1996 = select(mil, Not(4:50))
mil_1996_long = stack(mil_1996, 4:26)
mil_1996_long_Saudi = @where(mil_1996_long, :country .== "Saudi Arabia")
p = plot(mil_long_Saudi, x=:variable, y=:value, color=:country, Geom.point, Geom.line);
img = SVG("militaryUsaSaudi.svg", 14cm, 8cm)
draw(img, p)

 

2.上位5カ国の推移

 

複数の国名で選び出す式は次です。

 

mil_1996_long[findall(in(["Saudi Arabia", "Oman", "Algeria","Kuwait","Lebanon"]), mil_1996_long.country), :] 

 

 

スクリプト

 

# using libraries
using Gadfly
using CSV, DataFrames
using DataFramesMeta
# load the data
mil = CSV.read("militaryGdp3.csv")
mil_1996 = select(mil, Not(4:50))
mil_1996_long = stack(mil_1996, 4:26)
# filter by country
mil_1996_long_Saudi = @where(mil_1996_long, :country .== "Saudi Arabia")
# create a line plot
p = plot(mil_1996_long_Saudi, x=:variable, y=:value, color=:country, Geom.point, Geom.line);
p
img = SVG("militaryUsaSaudi.svg", 14cm, 8cm)
draw(img, p)
# filter by country
mil_5 = mil_1996_long[findall(in(["Saudi Arabia", "Oman", "Algeria","Kuwait","Lebanon"]), mil_1996_long.country), :]
# create a multiple line plot
p = plot(mil_5, x=:variable, y=:value, color=:country, Geom.point, Geom.line);
p
img = SVG("military5.svg", 14cm, 8cm)
draw(img, p)

 

V.2018年の軍事費の対GDP比のChoropeth地図の作成

 

インターアクティブな地図を作成しました。リンクをクリックするとソースページが表示されます。

地図にマップするには、3文字国名コードが必要ですが、データには国名のみしかありません。Google Sheets上で手動で国名を入れました、、、、自動化する方法を知りません。国名コード一覧は次です。

 

COUNTRY CODES ALPHA-2 & ALPHA-3

 

 

スクリプト

 

df2 <- read.csv('MilitaryGdpPlotly - plotly2_3.csv') # ソースデータより作成
df3 <- na.omit(df2)
# light grey boundaries
l2 <- list(color = toRGB("grey"), width = 0.5)
# specify map projection/options
g2 <- list(
  showframe = FALSE,
  showcoastlines = FALSE,
  projection = list(type = 'Mercator')
)
p2 <- plot_geo(df2) %>%
  add_trace(
    z = ~mil_gdp_2018, color = ~mil_gdp_2018, colors = 'Blues',
    text = ~country, locations = ~code, marker = list(line = l2)
  ) %>%
  colorbar(title = 'Expenditure / GDP %', ticksuffix="%") %>%
  layout(
    title = '2018 Military Expenditure / GDP<br>Source:<a href="https://www.cia.gov/library/publications/the-world-factbook/fields/2195.html">CIA World Factbook</a>',
    geo = g2
  )
p2

 

to be continued

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.