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

如何在R的DataFrame中添加统计政客连任次数的新列?

解决DataFrame添加政客连任次数列的问题

核心思路

连任次数等于政客的总当选任期数减1(比如3次任期对应2次连任),通过分组计算每组行数,再转换为连任次数即可。

方法一:直接在原数据框添加列(推荐)

使用dplyr的group_by()+mutate(),无需额外合并操作,直接生成目标列:

library(dplyr)

# 给原数据框添加连任次数列
df <- df %>%
  group_by(ui) %>%
  mutate(reelection_times = n() - 1) %>%
  ungroup()
  • group_by(ui):按政客唯一标识符分组
  • n():计算每组的记录数(即该政客的总任期数)
  • n() - 1:得到连任次数(第一次当选不算连任)
  • ungroup():取消分组,避免影响后续数据操作

方法二:先统计再合并(兼容你之前的尝试)

如果坚持用count()生成统计结果,可通过left_join()合并回原数据框:

library(dplyr)

# 先统计每个政客的总任期数
count_df <- df %>% count(ui, name = "total_terms")

# 合并并计算连任次数
df <- df %>%
  left_join(count_df, by = "ui") %>%
  mutate(reelection_times = total_terms - 1) %>%
  select(-total_terms) # 可选:删除临时的总任期数列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:30:48