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

R语言为数据框新增列 展示每个Code对应的最新Description

我今天花了数小时寻找该问题的解决方案,网上有类似讨论帖,但均无法完全匹配我的需求。

数据集

测试数据集生成代码如下:

Year          <- c(2019, 2020, 2021, 2019, 2020, 2020, 2021, 2021)
Term          <- c("2019_T1", "2020_T1", "2021_T1", "2019_T1", "2020_T1", "2020_T2", "2021_T1", "2021_T2")
Code          <- c(1,1,1,2,2,2,2,2)
Description   <- c("Desc1","Desc1","Desc1", "Desc2", "Desc2", "Desc2", "Desc2_NotRecent","Desc2_Recent")

运行上述代码生成的表格如下:

Year    Term Code     Description
1 2019 2019_T1    1           Desc1
2 2020 2020_T1    1           Desc1
3 2021 2021_T1    1           Desc1
4 2019 2019_T1    2           Desc2
5 2020 2020_T1    2           Desc2
6 2020 2020_T2    2           Desc2
7 2021 2021_T1    2 Desc2_NotRecent
8 2021 2021_T2    2    Desc2_Recent
问题描述

如何为数据框新增一列,展示每个Code对应的最新Description?
我需要基于Term字段判断时间先后以找出最新描述,推测可先通过简单排序实现,但目前尚未摸索出正确方法。
必须以最新Term对应的值为准,本示例中最新Term为2021_T2,若误选首个值会调取旧描述,易给相关人员造成误解。

预期输出结果
Year    Term Code     Description  Most_Recent
1 2019 2019_T1    1           Desc1        Desc1
2 2020 2020_T1    1           Desc1        Desc1
3 2021 2021_T1    1           Desc1        Desc1
4 2019 2019_T1    2           Desc2 Desc2_Recent
5 2020 2020_T1    2           Desc2 Desc2_Recent
6 2020 2020_T2    2           Desc2 Desc2_Recent
7 2021 2021_T1    2 Desc2_NotRecent Desc2_Recent
8 2021 2021_T2    2    Desc2_Recent Desc2_Recent
解决方案

Robin Gertenbach给出的简易解决方案如下(基于dplyr包实现):

df %>%
  group_by(Code) %>%
  dplyr::mutate(Most_Recent = dplyr::last(Description, Term))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:06:02