r - 如何导入具有文本和数字日期格式的日期列的 Excel 电子表格?例如,(“2019 年 12 月 3 日”、“2019 年 5 月 4 日”、“43787”
问题描述
如果我有多个具有不同格式的日期列的电子表格,如果某些行具有数字格式,是否可以转换日期?
如果我将列作为字符导入,我仍然需要转换为日期。我相信 parse_date_time 会解决任何接受数字格式的问题。
以下将转换前两个但不是数字版本。我不认为这个函数有一个数字函数。是否有可以同时处理文本和数字日期的函数?
x<- c("2019-12-05","8-Dec-19","43787")
lubridate::parse_date_time(x, c("ymd", "d-b-y"))
解决方案
这有点笨拙,但是您可以janitor::excel_numeric_to_date()
对任何数字值且无法通过parse_date_time
...解析的数据进行第二次传递(如果您要经常使用它,您可以编写一个包装函数 - 您可能还想抑制来自parse_date_time
和as.numeric
...的警告消息)
x <- c("2019-12-05","8-Dec-19","43787")
y <- lubridate::parse_date_time(x, c("ymd", "d-b-y"))
exceld <- is.na(y) & !is.na(as.numeric(x))
y[exceld] <- janitor::excel_numeric_to_date(as.numeric(x[exceld]))
推荐阅读
- java - 如何将两个参数传递给百里香模板?
- android - 长时间网络操作后使用主线程
- markdown - pandoc-include-code 在页面宽度处强制换行
- authentication - 社交/企业身份验证不适用于 Azure 移动应用和 Xamarin Forms
- azure - 用于创建服务主体的 Azure 函数
- mysql - 将单引号附加到逗号分隔的数据 Mysql
- r - 如何向scatter3d添加点?
- testing - 这段代码在做什么以及如何为它创建测试场景?
- python - 在 Python exe 中调用子进程脚本的最佳方法
- powershell - 在 Send-MailMessage 中为正文使用数组