r - 将列添加到数据框以显示最新的描述

标签 r dplyr

我今天花了几个小时来找到解决方案,那里有类似的线程,但不完全是我需要的。

数据集:

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

问题: 如何添加一列来显示每个代码的最新说明。

我需要根据术语查找最新的。也许这可以通过首先进行简单的排序来完成,抱歉我还没有弄清楚。

重要的是最新的术语值。此处,最近的期限是 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 的简单解决方案。

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

最佳答案

更短的解决方案,没有连接或条件

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

关于r - 将列添加到数据框以显示最新的描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69160385/

相关文章:

r - 需要在网格中的图形中有序地排列 GAM 系数

r - xj[i] : invalid subscript type 'list' 中出现错误

r - 在 R 中创建切片树

r - 将 Shiny 与 Quantstrat 回测相结合

r - 在自定义函数中使用 mutate 以突变条件作为参数

r - 我怎样才能在给定时间段内获得所有(即 1500 条以上)带有给定主题标签的推文?

r - 使用函数 mutate_at 没有按预期迭代函数

r - 如何通过%>%运算符(dplyr)使用逻辑函数

r - 使用dplyr填写缺失值(通过联接吗?)

r - 如何在dplyr summarise中使用标准评估_