関数名: convert_country_to_jp
引数 countryname に英語の国名を指定すると、該当する日本語の国名を返します。
大文字・小文字の揺れ(Japan や JAPAN など)を吸収するため、内部で小文字に変換してからマッチングを行っています。
また、ベクトル(複数の国名)が入力された場合にも一括で変換できるように設計しています。
変換対象は、国連加盟国193か国にバチカン、コソボ、クック諸島、ニウエ、台湾を加えた全198か国とし、一部よく使われる略称や別名(USA、UK、UAE、South Koreaなど)にも対応させています。
convert_country_to_jp <- function(countryname) {
# 大文字小文字の揺らぎをなくすため小文字に変換し、前後の余白を削除
country_lower <- tolower(trimws(countryname))
# 国連加盟国193か国 + バチカン、コソボ、クック諸島、ニウエ、台湾の辞書
# 主要な別名や略称も合わせて定義
country_dict <- c(
# A
"afghanistan" = "アフガニスタン",
"albania" = "アルバニア",
"algeria" = "アルジェリア",
"andorra" = "アンドラ",
"angola" = "アンゴラ",
"antigua and barbuda" = "アンティグア・バーブーダ",
"argentina" = "アルゼンチン",
"armenia" = "アルメニア",
"australia" = "オーストラリア",
"austria" = "オーストリア",
"azerbaijan" = "アゼルバイジャン",
# B
"bahamas" = "バハマ",
"bahrain" = "バーレーン",
"bangladesh" = "バングラデシュ",
"barbados" = "バルバドス",
"belarus" = "ベラルーシ",
"belgium" = "ベルギー",
"belize" = "ベリーズ",
"benin" = "ベナン",
"bhutan" = "ブータン",
"bolivia" = "ボリビア",
"bosnia and herzegovina" = "ボスニア・ヘルツェゴビナ",
"botswana" = "ボツワナ",
"brazil" = "ブラジル",
"brunei" = "ブルネイ",
"bulgaria" = "ブルガリア",
"burkina faso" = "ブルキナファソ",
"burundi" = "ブルンジ",
# C
"cabo verde" = "カーボベルデ",
"cape verde" = "カーボベルデ",
"cambodia" = "カンボジア",
"cameroon" = "カメルーン",
"canada" = "カナダ",
"central african republic" = "中央アフリカ共和国",
"chad" = "チャド",
"chile" = "チリ",
"china" = "中国",
"prc" = "中国",
"colombia" = "コロンビア",
"comoros" = "コモロ",
"congo" = "コンゴ共和国",
"republic of the congo" = "コンゴ共和国",
"costa rica" = "コスタリカ",
"croatia" = "クロアチア",
"cuba" = "キューバ",
"cyprus" = "キプロス",
"czech republic" = "チェコ",
"czechia" = "チェコ",
"cook islands" = "クック諸島",
# D
"democratic republic of the congo" = "コンゴ民主共和国",
"drc" = "コンゴ民主共和国",
"denmark" = "デンマーク",
"djibouti" = "ジブチ",
"dominica" = "ドミニカ国",
"dominican republic" = "ドミニカ共和国",
# E
"east timor" = "東ティモール",
"timor-leste" = "東ティモール",
"ecuador" = "エクアドル",
"egypt" = "エジプト",
"el salvador" = "エルサルバドル",
"equatorial guinea" = "赤道ギニア",
"eritrea" = "エリトリア",
"estonia" = "エストニア",
"eswatini" = "エスワティニ",
"swaziland" = "エスワティニ",
"ethiopia" = "エチオピア",
# F
"fiji" = "フィジー",
"finland" = "フィンランド",
"france" = "フランス",
# G
"gabon" = "ガボン",
"gambia" = "ガンビア",
"georgia" = "ジョージア",
"germany" = "ドイツ",
"ghana" = "ガーナ",
"greece" = "ギリシャ",
"grenada" = "グレナダ",
"guatemala" = "グアテマラ",
"guinea" = "ギニア",
"guinea-bissau" = "ギニアビサウ",
"guyana" = "ガイアナ",
# H
"haiti" = "ハイチ",
"honduras" = "ホンジュラス",
"hungary" = "ハンガリー",
# I
"iceland" = "アイスランド",
"india" = "インド",
"indonesia" = "インドネシア",
"iran" = "イラン",
"iraq" = "イラク",
"ireland" = "アイルランド",
"israel" = "イスラエル",
"italy" = "イタリア",
"ivory coast" = "コートジボワール",
"cote d'ivoire" = "コートジボワール",
"côte d'ivoire" = "コートジボワール",
# J
"jamaica" = "ジャマイカ",
"japan" = "日本",
"jordan" = "ヨルダン",
# K
"kazakhstan" = "カザフスタン",
"kenya" = "ケニア",
"kiribati" = "キリバス",
"kuwait" = "クウェート",
"kyrgyzstan" = "キルギス",
"kosovo" = "コソボ",
# L
"laos" = "ラオス",
"latvia" = "ラトビア",
"lebanon" = "レバノン",
"lesotho" = "レソト",
"liberia" = "リベリア",
"libya" = "リビア",
"liechtenstein" = "リヒテンシュタイン",
"lithuania" = "リトアニア",
"luxembourg" = "ルクセンブルク",
# M
"madagascar" = "マダガスカル",
"malawi" = "マラウイ",
"malaysia" = "マレーシア",
"maldives" = "モルディブ",
"mali" = "マリ",
"malta" = "マルタ",
"marshall islands" = "マーシャル諸島",
"mauritania" = "モーリタニア",
"mauritius" = "モーリシャス",
"mexico" = "メキシコ",
"micronesia" = "ミクロネシア",
"moldova" = "モルドバ",
"monaco" = "モナコ",
"mongolia" = "モンゴル",
"montenegro" = "モンテネグロ",
"morocco" = "モロッコ",
"mozambique" = "モザンビーク",
"myanmar" = "ミャンマー",
"burma" = "ミャンマー",
# N
"namibia" = "ナミビア",
"nauru" = "ナウル",
"nepal" = "ネパール",
"netherlands" = "オランダ",
"new zealand" = "ニュージーランド",
"nicaragua" = "ニカラグア",
"niger" = "ニジェール",
"nigeria" = "ナイジェリア",
"north korea" = "北朝鮮",
"dprk" = "北朝鮮",
"north macedonia" = "北マケドニア",
"norway" = "ノルウェー",
"niue" = "ニウエ",
# O
"oman" = "オマーン",
# P
"pakistan" = "パキスタン",
"palau" = "パラオ",
"panama" = "パナマ",
"papua new guinea" = "パプアニューギニア",
"paraguay" = "パラグアイ",
"peru" = "ペルー",
"philippines" = "フィリピン",
"poland" = "ポーランド",
"portugal" = "ポルトガル",
# Q
"qatar" = "カタール",
# R
"romania" = "ルーマニア",
"russia" = "ロシア",
"rwanda" = "ルワンダ",
# S
"saint kitts and nevis" = "セントクリストファー・ネイビス",
"saint lucia" = "セントルシア",
"saint vincent and the grenadines" = "セントビンセント・グレナディーン",
"samoa" = "サモア",
"san marino" = "サンマリノ",
"sao tome and principe" = "サントメ・プリンシペ",
"saudi arabia" = "サウジアラビア",
"senegal" = "セネガル",
"serbia" = "セルビア",
"seychelles" = "セーシェル",
"sierra leone" = "シエラレオネ",
"singapore" = "シンガポール",
"slovakia" = "スロバキア",
"slovenia" = "スロベニア",
"solomon islands" = "ソロモン諸島",
"somalia" = "ソマリア",
"south africa" = "南アフリカ",
"south korea" = "韓国",
"korea" = "韓国",
"south sudan" = "南スーダン",
"spain" = "スペイン",
"sri lanka" = "スリランカ",
"sudan" = "スーダン",
"suriname" = "スリナム",
"sweden" = "スウェーデン",
"switzerland" = "スイス",
"syria" = "シリア",
# T
"tajikistan" = "タジキスタン",
"tanzania" = "タンザニア",
"thailand" = "タイ",
"togo" = "トーゴ",
"tonga" = "トンガ",
"trinidad and tobago" = "トリニダード・トバゴ",
"tunisia" = "チュニジア",
"turkey" = "トルコ",
"turkiye" = "トルコ",
"turkmenistan" = "トルクメニスタン",
"tuvalu" = "ツバル",
"taiwan" = "台湾",
"republic of china" = "台湾",
"roc" = "台湾",
# U
"uganda" = "ウガンダ",
"ukraine" = "ウクライナ",
"united arab emirates" = "アラブ首長国連邦",
"uae" = "アラブ首長国連邦",
"united kingdom" = "イギリス",
"uk" = "イギリス",
"great britain" = "イギリス",
"united states" = "アメリカ",
"united states of america" = "アメリカ",
"usa" = "アメリカ",
"us" = "アメリカ",
"uruguay" = "ウルグアイ",
"uzbekistan" = "ウズベキスタン",
# V
"vanuatu" = "バヌアツ",
"venezuela" = "ベネズエラ",
"vietnam" = "ベトナム",
"viet nam" = "ベトナム",
"vatican" = "バチカン",
"vatican city" = "バチカン",
"holy see" = "バチカン",
# Y
"yemen" = "イエメン",
# Z
"zambia" = "ザンビア",
"zimbabwe" = "ジンバブエ"
)
# 辞書からマッチするものを取得(マッチしない場合はNAになる)
result <- country_dict[country_lower]
# ベクトルの名前属性を外して返す
return(unname(result))
}実行例
# 単一の変換
convert_country_to_jp("japan")[1] "日本"# 大文字・小文字が混ざっていても対応
convert_country_to_jp("United States")[1] "アメリカ"# 略称への対応
convert_country_to_jp("UAE")[1] "アラブ首長国連邦"# ベクトルを渡して一括変換
convert_country_to_jp(c("japan", "taiwan", "Kosovo", "UK"))[1] "日本" "台湾" "コソボ" "イギリス"以上です。
