我有两个来自不同数据框的不同不规则格式的时间序列,但问题是相同的。我想要提取小时、分钟、秒和毫秒。
时间序列看起来像这样:
ts1
我尝试了。
我丢失了毫秒级别的信息,只得到了对我无用的日期信息。
我试过了。
最终,我想将ts1和ts2分别转换为具有相同格式(毫秒级)的新时间序列,例如:
ts1
相同的格式对我很重要,因为我之后想要操作这两个时间序列。例如:对齐时间序列、计算差异等等...
时间序列看起来像这样:
ts1
08:27:23,445
08:27:24,280
08:27:25,115
...
我尝试了。
strptime("08:27:23,445", "%H:%M:%OS")
[1] "2013-05-23 08:27:23"
我丢失了毫秒级别的信息,只得到了对我无用的日期信息。
ts2
Fri Apr 19 2013 08:39:41 GMT+0200
Fri Apr 19 2013 08:39:43 GMT+0200
Fri Apr 19 2013 08:39:45 GMT+0200
...
我试过了。
strptime("Fri Apr 19 2013 08:39:41 GMT+0200", "%a %b %d %Y %H:%M:%S %Z")
[1] NA
最终,我想将ts1和ts2分别转换为具有相同格式(毫秒级)的新时间序列,例如:
ts1
08:27:23,445
ts2
08:39:41,000
相同的格式对我很重要,因为我之后想要操作这两个时间序列。例如:对齐时间序列、计算差异等等...
感谢您的帮助!
更新:添加dput
这两个数据集都非常长,所以我尝试缩小它们。
ts1
structure(list(t = structure(1:9, .Label = c("08:27:23,445",
"08:27:24,280", "08:27:25,115", "08:27:25,960", "08:27:26,780",
"08:27:27,540", "08:27:28,295", "08:27:29,075", "08:27:29,910"), class = "factor")), .Names = "t", row.names = c(NA, -9L
), class = "data.frame")
ts2
structure(list(t = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 6L, 7L,
8L), .Label = c("Fri Apr 19 2013 08:39:41 GMT+0200", "Fri Apr 19 2013 08:39:43 GMT+0200",
"Fri Apr 19 2013 08:39:45 GMT+0200", "Fri Apr 19 2013 08:39:49 GMT+0200",
"Fri Apr 19 2013 08:39:51 GMT+0200", "Fri Apr 19 2013 08:39:53 GMT+0200",
"Fri Apr 19 2013 08:39:59 GMT+0200", "Fri Apr 19 2013 08:40:05 GMT+0200",
"Fri Apr 19 2013 08:40:06 GMT+0200"
), class = "factor")), .Names = "t", row.names = c(NA, -9L), class = "data.frame")
dput
。 - Jonas Tundots1
中的原因。ts2
是NA
,因为您格式指定不正确。%Z
仅用于输出,您可能想使用%z
;但%z
仅包括与 UTC 的有符号偏移量(它不包括文本时区表示),因此您需要在格式中包含文本。例如:strptime(ts2$t, "%a %b %d %Y %H:%M:%S GMT%z")
。 - Joshua Ulrich