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

使用R语言dplyr对比各国1952年与其他年份的预期寿命

R Tibble管道操作实现跨年份预期寿命对比指导

完整单行管道实现代码

gap %>% group_by(country) %>% mutate(lifeExp_1952 = lifeExp[year == 1952], lifeExp_diff = lifeExp - lifeExp_1952) %>% ungroup()

逻辑拆解

  • group_by(country):按国家维度分组,后续所有操作都会在每个国家的独立数据子集内执行,避免不同国家的数据混淆
  • mutate(...):保留原表所有数据的前提下新增计算列:
    • lifeExp_1952:提取当前国家子集内年份为1952年的预期寿命值,因为已经按国家分组,每个国家的所有行都会统一填充本国1952年的基准值
    • lifeExp_diff:直接计算当前年份预期寿命与1952年基准值的差值,完成对比需求,若不需要差值可以省略该参数
  • ungroup():解除分组状态,避免后续其他操作受遗留分组逻辑影响

原有代码问题说明

你之前的写法先按year和lifeExp分组,再筛选1952年数据,会直接过滤掉其他年份的所有记录,自然无法关联其他年份数据做对比。不需要提前筛选1952年数据,在分组内直接提取对应年份的数值填充到所有行即可实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:24:02