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

合并结构不同的expenditure与cabinets数据集并新增列的实现问题

合并两个DataFrame的实现方案

步骤1:前置数据清洗

  • 统一国家缩写字段格式:将cabinets表的abv列转为全小写,和expenditure表的abv字段规则对齐,避免匹配失败
  • 格式化polarization字段:把数值中的逗号替换为小数点,将"caretaker"这类非数值标记转为空值或自定义标识,方便后续计算
  • 去重处理:如果同一个国家+年份在cabinets表中存在多条记录,可根据需求选择保留最新选举日期对应的条目,或对polarization做自定义聚合

步骤2:左连接合并表

要保留expenditure的全部800条观测,仅匹配添加cabinets的对应字段,使用国家+年份+国家缩写作为匹配键做左连接即可,R语言实现代码如下:

library(dplyr)

# 清洗cabinets表
cabinets_clean <- cabinets %>%
  mutate(abv = tolower(abv),
         polarization = as.numeric(sub(",", ".", polarization))) %>%
  # 同国家同年去重,示例保留最新一条记录,可按需调整规则
  group_by(country, year) %>%
  slice_tail(n = 1) %>%
  ungroup()

# 合并表
expenditure_merged <- expenditure %>%
  left_join(cabinets_clean %>% select(country, year, abv, polarization, cabinet_name),
            by = c("country", "year", "abv"))

可选补充:空值填充

如果需要用最近选举的polarization值填充未匹配到的年份空值,可添加如下逻辑:

expenditure_merged <- expenditure_merged %>%
  group_by(country) %>%
  fill(polarization, .direction = "down") %>%
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 23:21:00