【发布时间】:2021-05-17 00:03:49
【问题描述】:
我尝试仅在 R 中转换 yyyy 中的日期格式 yyyymmdd。 在how to convert numeric only year in Date in R? 中提出了一个非常有趣的答案,因为它设法让 R 理解将 8 位条目 (yyyymmdd) 转换为 4 位数字年份 (yyyy) 在润滑包中,这对我来说非常好。
在旧代码中,我使用了round_date():
date2<-c('01/01/2000','08/08/2000','16/03/2001','25/12/2000','29/02/2000')
name<-c('A','B','C','D','E')
df<-data.frame(date2,name)
df2 <- df %>%
mutate(date2 = dmy(date2)) %>%
mutate(year_date = round_date(date2,'year'))
df2
str(df2)
date2<date> name<chr> year_date <date>
2000-01-01 A 2000-01-01
2000-08-08 B 2001-01-01
2001-03-16 C 2001-01-01
2000-12-25 D 2001-01-01
2000-02-29 E 2000-01-01
但是当我发现例如日期 2000-08-08 被四舍五入到 2001-01-01 年,而不是我预期的 2001-01-01 年时,我的统计分析开始出现问题。
这对我来说是一个非常大的问题,因为考虑到我的数据库中有超过 1400 行,属于 2005 年的信息已移至 2006 年。
我注意到年中(六月之后)之后的日期被四舍五入到下一年,这很糟糕。
如何将 2000-08-08 日期舍入为 2000 而不是 2001?
【问题讨论】: