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

如何在R语言的面板数据框中为国家分配唯一ID编号

R实现唯一国家ID列创建的两种方案

你可以基于已加载的dplyr库,选择以下任意一种方法实现需求,推荐优先使用国家三字码isocode作为ID分配的依据,避免国家名称拼写差异带来的错误:

方法1:dplyr分组分配(逻辑直观易调整)

适用于需要同时进行其他分组操作的场景,dplyr版本≥1.0.0可用:

df <- df %>%
  # 按国家三字码分组,如需按国家名称分配替换为group_by(country)
  group_by(isocode) %>%
  # cur_group_id()会按分组变量的字母升序给每个组分配从1开始的连续ID
  mutate(id_num = cur_group_id()) %>%
  # 取消分组避免后续操作受分组影响
  ungroup()

方法2:因子转整数(效率更高适合大数据集)

不需要分组操作,单语句即可完成,执行速度更快:

# sort(unique())保证ID按isocode的字母升序分配,不需要固定排序可以去掉该参数
df$id_num <- as.integer(factor(df$isocode, levels = sort(unique(df$isocode))))

验证效果

你可以用以下语句检查分配结果是否符合预期:

# 按ID升序查看每个国家对应的唯一编号
distinct(df, country, isocode, id_num) %>% arrange(id_num)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 03:39:02