如何解决是否有一种方法可以舍入日期而无内存超出r?
我正在处理一个数据集,在该数据集中,将posixct日期四舍五入为data.table的一列中最接近的小时,该行具有8800万行。
我用过一轮。日期(按基准)和round_date(按lubridate),它们都超出了内存,因此无法完成。最后,我将数据集分为四个相等的部分,将必要的列四舍五入,然后向后绑定。
是否有一种很好的方法来以更高的内存效率对日期进行舍入
预先感谢
解决方法
这应该很棒又快速
#sample data
library( data.table )
n = 1000000
set.seed(123)
DT <- data.table( id = 1:n,timestamp = sample(seq(as.POSIXct('2017/01/01'),as.POSIXct('2020/05/01'),by="5 mins"),replace = TRUE,n) )
#split timestamp to iDate and iTime
DT[,c("date","time") := IDateTime( timestamp ) ]
#round the iTime
DT[,time_rounded := round( time,units = "hour" )]
#convert iDate and rounded iTime back to posixct (add timezone if needed)
DT[,timestamp_rounded := as.POSIXct( time_rounded,date = date ) ]
可能的问题:第二天四舍五入到00:00 ...您应该对此进行测试并在需要时调整日期...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。