You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于ISO-3编码的国家数据集:如何查询指定国家的邻国?

实现特定国家的邻国查询方案

要完成选定特定国家并查询其邻国的需求,我们可以借助地理数据工具包获取国家邻接关系,以下是具体实现步骤:

1. 安装并加载所需包

需要用到rnaturalearth获取国家地理及邻接数据,结合你已使用的dplyr做数据处理:

# 首次运行需安装包
install.packages(c("rnaturalearth", "dplyr"))

# 加载包
library(rnaturalearth)
library(dplyr)

2. 获取国家邻接关系数据集

用ne_countries函数获取包含邻接信息的国家数据,提取ISO-3编码和邻接国家列表:

# 获取带邻接信息的国家地理数据
countries <- ne_countries(returnclass = "sf", scale = "medium") %>%
  select(iso_a3, name, neighbours) %>%
  # 将邻接的ISO3编码字符串拆分为列表格式
  mutate(neighbours = strsplit(neighbours, ","))

3. 编写查询邻国的函数

创建函数,输入目标国家的ISO-3编码,返回其邻国的详细信息(可关联你的country_data数据集):

get_neighbors <- function(target_iso3) {
  # 提取目标国家的邻接ISO3编码列表
  target_neighbours <- countries %>%
    filter(iso_a3 == target_iso3) %>%
    pull(neighbours) %>%
    unlist()
  
  # 获取邻国信息并关联你的数据集
  neighbor_info <- countries %>%
    filter(iso_a3 %in% target_neighbours) %>%
    select(iso_a3, name) %>%
    left_join(country_data, by = c("iso_a3" = "ISO_3"))
  
  return(neighbor_info)
}

4. 使用示例

比如查询美国(USA)的邻国:

usa_neighbors <- get_neighbors("USA")
print(usa_neighbors)

注意事项

  • rnaturalearth的neighbours字段存储的是陆地邻接国家的ISO-3编码,岛国等无陆地邻国的国家该字段为空
  • 若需要更精细的边界数据,可调整ne_countries的scale参数,可选值为"small"、"medium"、"large"

内容的提问来源于stack exchange,提问作者silent_hunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:48:09