如何将这个模糊的字符向量格式化为 R 中的日期时间(或 POSIX)对象?
How to format this obscure character vector into datetime (or POSIX) objects in R?
我有以下字符向量:
times <- c("2020-04-15T03:30:05.197Z", "2020-04-15T03:30:05.366Z", "2020-04-15T03:30:05.530Z")
我需要先将其转换为 lubridate
日期时间对象或 POSIXct 对象 - 我不挑剔。以下不起作用:
as_datetime(link_log$createdAt,
format = "%Y-%m-%d%T%H:%M:%S")
老实说,我不确定每个元素的末尾发生了什么。 .197Z、.366Z、.530Z 是什么?我假设这些就是问题所在!
lubridate
的 ymd_hms
似乎有效。
options(digits.secs=6)
lubridate::ymd_hms(times)
#[1] "2020-04-15 03:30:05.197 UTC" "2020-04-15 03:30:05.366 UTC"
# "2020-04-15 03:30:05.529 UTC"
编写 anytime 包是为了自动执行此操作:不需要格式字符串或转换:
R> times <- c("2020-04-15T03:30:05.197Z", "2020-04-15T03:30:05.366Z",
+ "2020-04-15T03:30:05.530Z")
R> anytime::anytime(times)
[1] "2020-04-15 03:30:05.197 CDT" "2020-04-15 03:30:05.365 CDT"
[3] "2020-04-15 03:30:05.529 CDT"
R>
您可以传入字符或因子或数字或...格式,只要格式合理且通用(即我们忽略两位数的年份)它就应该有效。它甚至允许 不同的 格式。它还比大多数需要格式或提示的替代方案运行得更快。
我有以下字符向量:
times <- c("2020-04-15T03:30:05.197Z", "2020-04-15T03:30:05.366Z", "2020-04-15T03:30:05.530Z")
我需要先将其转换为 lubridate
日期时间对象或 POSIXct 对象 - 我不挑剔。以下不起作用:
as_datetime(link_log$createdAt,
format = "%Y-%m-%d%T%H:%M:%S")
老实说,我不确定每个元素的末尾发生了什么。 .197Z、.366Z、.530Z 是什么?我假设这些就是问题所在!
lubridate
的 ymd_hms
似乎有效。
options(digits.secs=6)
lubridate::ymd_hms(times)
#[1] "2020-04-15 03:30:05.197 UTC" "2020-04-15 03:30:05.366 UTC"
# "2020-04-15 03:30:05.529 UTC"
编写 anytime 包是为了自动执行此操作:不需要格式字符串或转换:
R> times <- c("2020-04-15T03:30:05.197Z", "2020-04-15T03:30:05.366Z",
+ "2020-04-15T03:30:05.530Z")
R> anytime::anytime(times)
[1] "2020-04-15 03:30:05.197 CDT" "2020-04-15 03:30:05.365 CDT"
[3] "2020-04-15 03:30:05.529 CDT"
R>
您可以传入字符或因子或数字或...格式,只要格式合理且通用(即我们忽略两位数的年份)它就应该有效。它甚至允许 不同的 格式。它还比大多数需要格式或提示的替代方案运行得更快。