r - 在R中导出数据时如何将Year-Mon的字符串转换为正确的日期格式?
问题描述
当我将 R 中的数据导出为 csv 时,我试图确保 As_of_Dt 正确转换为日期。目前,当我将数据导出到 Excel 时。它错误地转换了 As_of_Dt。月份基本保持不变,但年份变为日期,年份变为当年(2020 年)。如果 as_of_dt 是 1 月 18 日,它在 excel 中变为 1/18/20。我正在努力防止这种情况发生。
我希望此列导出为:1/1/18 当字符串为“18-Jan”时
目前,我尝试过
Data$As_of_Dt2<- zoo::as.Date(zoo::as.yearmon(Data$As_of_Dt, "%y-%b"))
但是在我创建的这个新列中,有些值是不适用的。
您将在下面找到 As_of_Dt 列的所有可能日期。
更新:我发现日期有时可能是 2018 年 1 月或 2018 年 1 月。有没有可以把这两种情况转换成1/1/18的函数?
解决方案
您可以使用strptime
.
strptime(dat, "%d-%b")
# [1] "2020-11-20 CET" "2020-11-15 CET" "2020-01-20 CET" "2020-06-20 CEST"
# [5] "2020-02-20 CET" "2020-04-19 CEST" "2020-12-16 CET" "2020-08-20 CEST"
# [9] "2020-01-17 CET" "2020-01-16 CET" "2020-10-17 CEST" "2020-06-19 CEST"
# [13] "2020-08-17 CEST" "2020-05-16 CEST" "2020-10-16 CEST" "2020-08-18 CEST"
# [17] "2020-11-19 CET" "2020-01-15 CET" "2020-12-17 CET" "2020-11-18 CET"
数据:
dat <- c("20-Nov", "15-Nov", "20-Jan", "20-Jun", "20-Feb", "19-Apr",
"16-Dec", "20-Aug", "17-Jan", "16-Jan", "17-Oct", "19-Jun", "17-Aug",
"16-May", "16-Oct", "18-Aug", "19-Nov", "15-Jan", "17-Dec", "18-Nov")
推荐阅读
- typescript - 在 monorepo 中使用 typescript 项目引用构建 cjs 和 esm
- css - How to add checkboxes to Multi Select in IE 11
- jquery - 单击 div 时删除添加类
- apache-spark - 将列表中元素后的 n 个元素与列表本身连接起来
- javascript - Azure Maps Resize + Javascript 无法正常工作
- testing - 如何在测试期间模拟 Sails.js / Waterline 模型
- reactjs - 从 React SSR 访问 cookie
- javascript - 将 Bootstrap 升级到版本 4 后如何让轮播再次工作?
- asp.net-core - 使用 Serilog(或任何结构化日志库)的 Steeltoe 动态日志配置
- excel - 使用 VBA 登录到安全网页