r - 润滑到本月的最后一天
问题描述
library(dplyr)
library(lubridate)
我有一些这样的数据
f <- tribble(~a, ~date,
"BVH", 201801,
"HBYU", 202012,
"CYC", 202112,
"AC", 202109)
我需要将它转换为每月的最后一天,我这样做
f %>% mutate(date = ym(date))
# A tibble: 4 x 2
a date
<chr> <date>
1 BVH 2018-01-01
2 HBYU 2020-12-01
3 CYC 2021-12-01
4 AC 2021-09-01
我想要的是,这个
# A tibble: 4 x 2
a date
<chr> <date>
1 BVH 2018-01-31
2 HBYU 2020-12-31
3 CYC 2021-12-31
4 AC 2021-09-30
解决方案
lubridaterollforward
完全符合您的要求:
> f %>% mutate(date = rollforward(ym(date)))
# A tibble: 4 x 2
a date
<chr> <date>
1 BVH 2018-01-31
2 HBYU 2020-12-31
3 CYC 2021-12-31
4 AC 2021-09-30
推荐阅读
- android - Activity.setTheme() 之后的 Activity.recreate() 导致活动泄漏
- unique - 根据第二列计算列中的不同值
- xcode - 目标的构建设置中没有“金属编译器”
- generics - Kotlin 中的协议实现可识别的推断类型
- xcode - 在某些设备上查看效果不佳
- coq - 当 Coq 扩展一个函数作为目标的一部分时,这意味着什么?
- couchdb - CouchDB 2.x 下 local_seq 的行为是什么?
- javascript - 两个给定时间戳Javascript剩余的时间百分比
- sql - SQL选择依赖于条件计数
- python-3.x - 第三次尝试时未出现授予的访问权限