微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

to.period() 无法正常工作 - 尾随毫秒

如何解决to.period() 无法正常工作 - 尾随毫秒

我正在尝试使用 to.period 将毫秒数据转换为常规秒级数据 - 但是最终输出有尾随毫秒

dput(head(x$Mid,20))
structure(c(3228.5,3228.5,3229,3229.5,3230,3231.5,3231,3231),class = c("xts","zoo"),index = structure(c(1543804206.41,1543804206.55,1543804206.63,1543804206.68,1543804206.75,1543804206.8,1543804206.85,1543804206.93,1543804206.97,1543804207.03,1543804207.07,1543804207.1,1543804207.14,1543804207.22,1543804207.29,1543804207.44,1543804207.7,1543804207.75,1543804207.88,1543804207.93),tzone = "",tclass = c("POSIXct","POSIXt")),.Dim = c(20L,1L),.Dimnames = list(NULL,"Mid"))


dput(to.period(head(x$Mid,20),"seconds"))
structure(c(3228.5,.Dim = c(2L,4L),c("head(x$Mid,20).Open","head(x$Mid,20).High",20).Low",20).Close"
)),index = structure(c(1543804206.97,"zoo"))

如何将时间戳的 to.period 输出四舍五入到秒。

解决方法

to.periodendpoints 一起使用,按照您的方式使用 to.period 将取第二个的最后一个值。 to.period 不舍入值。如果你愿意,你可以使用 lubridate 的 round_datefloor_date 函数来获得你想要的。

一个基于您的 x$MID 的小例子:

t <- to.period(x,"seconds",OHLC = FALSE)
t
                          Mid
2018-12-03 03:30:06.97 3229.5
2018-12-03 03:30:07.93 3231.0

library(lubridate)
index(t) <- floor_date(index(t),"1s") # replace index with floor value

t
                       Mid
2018-12-03 03:30:06 3229.5
2018-12-03 03:30:07 3231.0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。