r - 转换日期时间字符串并按日期排序
问题描述
我有一个非常重要的问题,即在 R 中将表示日期时间的字符串转换为 R 可以理解的对象(POSIXct?)。
我有一个日期时间的字符向量,如下所示:
[1] "Thu Apr 19 00:42:24 +0000 2018" "Sat Apr 14 03:08:30 +0000 2018" "Thu Apr 02 12:42:07 +0000 2015"
[4] "Wed Apr 25 02:24:49 +0000 2018" "Sun Apr 03 00:37:19 +0000 2016" "Fri Apr 11 10:02:42 +0000 2014"
[7] "Tue Jan 09 13:57:33 +0000 2018" "Wed Apr 13 09:45:05 +0000 2016" "Thu May 18 11:26:10 +0000 2017"
[10] "Thu Oct 05 03:41:32 +0000 2017"
我的目标是对这些值进行排序,以便最近的日期位于顶部,最早的日期位于底部。据我所知,这将涉及将这些字符串转换为日期时间对象,但即使这一步我还没有开始工作。
我试过了:
lubridate::as_date(dates[1], tz = "UTC", format = NULL)
as.POSIXct(dates[1], tz = "UTC")
但我总是收到以下错误:
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
我认为我可以通过指定format
参数来解决这个问题,但我到底该怎么做呢?此外,一旦我转换了它们(或者,如果我不需要转换它们,则不这样做) - 我该如何对这些日期进行排序?
任何帮助将不胜感激,在此先感谢!
解决方案
或者我们可以使用order(as.Date())
.
> dt[order(as.Date(dt, format="%a %b %d %H:%M:%S %z %Y"))]
[1] "Fri Apr 11 10:02:42 +0000 2014" "Thu Apr 02 12:42:07 +0000 2015" "Sun Apr 03 00:37:19 +0000 2016"
[4] "Wed Apr 13 09:45:05 +0000 2016" "Thu May 18 11:26:10 +0000 2017" "Thu Oct 05 03:41:32 +0000 2017"
[7] "Tue Jan 09 13:57:33 +0000 2018" "Sat Apr 14 03:08:30 +0000 2018" "Thu Apr 19 00:42:24 +0000 2018"
[10] "Wed Apr 25 02:24:49 +0000 2018"
数据
dt <- c("Thu Apr 19 00:42:24 +0000 2018", "Sat Apr 14 03:08:30 +0000 2018" ,
"Thu Apr 02 12:42:07 +0000 2015", "Wed Apr 25 02:24:49 +0000 2018",
"Sun Apr 03 00:37:19 +0000 2016", "Fri Apr 11 10:02:42 +0000 2014",
"Tue Jan 09 13:57:33 +0000 2018" ,"Wed Apr 13 09:45:05 +0000 2016" ,
"Thu May 18 11:26:10 +0000 2017","Thu Oct 05 03:41:32 +0000 2017")
推荐阅读
- java - 除非使用相同的命令编译包类,否则不会编译模块信息
- uml - 如何在 UML 中为字典添加简单的泛型类型注释?
- google-sheets - Google 表格:无法向图表系列添加标签
- javascript - 如何在 npm 模块上使用 web worker
- reactjs - 无法读取 Apollo 中未定义的属性“subscribeToMore”
- linux - 连接到主机 vm ip 端口 22:连接超时
- python - 为什么当我使用 lower() 和不使用 lower() 时会得到不同的结果?
- javascript - 规范是否要求设置节点的 innerText/textContent 自动转义 HTML 实体?
- javascript - 在对象上执行功能,然后在 Ramda 中操作对象
- c# - 如何在 c# 中反序列化时忽略 JSON 字符串中的特定字段?