R中如何将POSIXct格式日期从YYYY-MM-DD转换为MM/DD/YYYY
原因说明
readxl包的read_xlsx()函数中,col_types = "date"参数读取的日期默认以POSIXct日期时间类型存储,属于R内置的标准日期存储格式,本身不影响日期取值,只是默认打印显示不符合你需要的MM/DD/YYYY格式。
解决方法
按需选择两种处理方案:
方案1:保留日期类型,仅修改显示格式(推荐)
如果后续需要对EDD列做日期计算(如筛选日期范围、计算日期间隔),不要转成字符串,仅调整显示格式即可,操作如下:
# 未安装lubridate先执行 install.packages("lubridate") library(lubridate) # 先转成纯Date类型去掉不必要的时间部分 MICAP$EDD <- as_date(MICAP$EDD) # 设置显示格式为月/日/年 format(MICAP$EDD) <- "%m/%d/%Y"
修改后EDD列仍然是日期类型,支持所有日期运算,打印显示就是MM/DD/YYYY格式。
方案2:直接转为MM/DD/YYYY格式的字符串
如果不需要后续做日期运算,仅需要固定显示为该格式的文本,直接转字符即可:
MICAP$EDD <- format(MICAP$EDD, "%m/%d/%Y")
补充说明
- 你原导入代码中
col_names = TRUE后的多余逗号属于语法冗余,不会报错但建议删除 - 如果你想要导入时就避免生成POSIXct类型,可以把EDD列对应的
col_types参数改为"text",导入后再用lubridate::mdy()函数转成日期格式,灵活度更高。
内容的提问来源于stack exchange,提问作者JLGRIECO
相关产品推荐
相关产品推荐

