【发布时间】:2021-01-18 04:32:45
【问题描述】:
我有一个数据框df,看起来像这样:ID 是某只股票,value 是股票价格的虚拟变量,year 是我计算出来的,作为拆分数据的辅助列以下:
id date value year
1 2020-12-30 11 2020
1 2020-12-09 12 2020
1 2020-08-01 13 2020
1 2019-12-30 14 2019
1 2019-12-09 15 2019
1 2019-08-01 16 2019
2 2020-12-30 17 2020
2 2020-12-09 18 2020
2 2020-08-01 19 2020
2 2019-12-29 20 2019
2 2019-12-09 21 2019
2 2019-08-01 22 2019
我想为每年的每个 id 查找我有数据的最后一天是什么。通常,这是年末,但在我的大型数据集中并非总是如此,所以我不想硬编码年末。
我已经根据 id 和年份将其拆分为一个列表,代码和结果如下:
list <- split(df, list(df$id, df$year))
现在,在列表的 4 个元素中的每一个中,我想创建一个新列,以提供相应列表中日期列的最大值。例如。我希望第一个列表元素有以下输出:
id date value year maxdate
1 2020-12-30 11 2020 2020-12-30
1 2020-12-09 12 2020 2020-12-30
1 2020-08-01 13 2020 2020-12-30
你能帮我实现想要的输出吗?
我曾尝试使用某些版本的 apply 系列函数,但仅根据我的每个列表元素中的日期列无法使其工作。
非常感谢您!
最好的问候, C
【问题讨论】:
标签: r