如何从date类日期中提取月日并保留date类属性?
解决Date类提取月日并保留类型的问题
因为Date类型必须包含年、月、日完整信息,无法单独存储仅含月日的Date对象,所以我们可以通过统一指定一个固定年份(比如2000年),保留原日期的月日部分,以此维持Date类属性。
方法一:使用update()函数修改年份
library(lubridate) date <- c('2018-01-09', '2018-01-10') date = ymd(date) # 替换年份为固定值,保留原月日 date_month_day <- update(date, year = 2000) # 验证类型 class(date_month_day) # 输出 "Date" # 查看结果 date_month_day # 输出 "2000-01-09" "2000-01-10"
方法二:使用make_date()重新构造日期
# 提取原日期的月、日,指定固定年份构造新Date对象 date_month_day <- make_date(year = 2000, month = month(date), day = day(date))
如果需要以%m-%d格式展示,仅在输出时用format()即可,不要覆盖原Date对象:
format(date_month_day, "%m-%d") # 输出 "01-09" "01-10",此时为字符类型,但原对象仍为Date类
内容的提问来源于stack exchange,提问作者barney stinson 2
相关产品推荐
相关产品推荐

