r - 如何在 R 中以小于 1 秒的单位填充日期向量?
问题描述
我试图弄清楚如何使用小于 1 秒的单位将时间间隔添加到 R 中的日期向量。如您所见,填充一秒间隔有效,但小数失败。我环顾四周,似乎R中没有“毫秒”单位。有什么方法可以填充间隔小于1秒的时间向量吗?
> require(padr)
> require(dplyr)
> options(digits.secs=3)
> start = as.POSIXct("2020-01-28 03:31:22.209 EST", format = "%Y-%m-%d %H:%M:%OS")
> end = as.POSIXct("2020-01-28 05:31:22.209 EST", format = "%Y-%m-%d %H:%M:%OS")
>
> minz <- seq(start, end, units = "minutes", by = "1 min")
> head(minz)
[1] "2020-01-28 03:31:22.209 EST" "2020-01-28 03:32:22.209 EST" "2020-01-28 03:33:22.209 EST" "2020-01-28 03:34:22.209 EST"
[5] "2020-01-28 03:35:22.209 EST" "2020-01-28 03:36:22.209 EST"
> secz <- as.data.frame(minz) %>% pad('1 sec')
> head(secz)
minz
1 2020-01-28 03:31:22.209
2 2020-01-28 03:31:23.209
3 2020-01-28 03:31:24.209
4 2020-01-28 03:31:25.209
5 2020-01-28 03:31:26.209
6 2020-01-28 03:31:27.209
> half_secz <- as.data.frame(minz) %>% pad('0.5 sec')
Error in seq.int(0, to0 - from, by) : invalid '(to - from)/by'
> head(secz)
minz
1 2020-01-28 03:31:22.209
2 2020-01-28 03:31:23.209
3 2020-01-28 03:31:24.209
4 2020-01-28 03:31:25.209
5 2020-01-28 03:31:26.209
6 2020-01-28 03:31:27.209
解决方案
我们可以直接使用seq
,将by
参数指定为 0.5。
start = as.POSIXct("2020-01-28 03:31:22.209", format = "%Y-%m-%d %H:%M:%OS",tz = "UTC")
end = as.POSIXct("2020-01-28 05:31:22.209", format = "%Y-%m-%d %H:%M:%OS",tz = "UTC")
seq(start, end, by = 0.5) %>% head
#[1] "2020-01-28 03:31:22.209 UTC" "2020-01-28 03:31:22.709 UTC"
#[3] "2020-01-28 03:31:23.209 UTC" "2020-01-28 03:31:23.709 UTC"
#[5] "2020-01-28 03:31:24.209 UTC" "2020-01-28 03:31:24.709 UTC"
或者,如果您想在secz
数据框中使用它
tidyr::complete(secz, minz = seq(min(minz), max(minz), by = 0.5))
# minz
# <dttm>
# 1 2020-01-28 03:31:22.209
# 2 2020-01-28 03:31:22.709
# 3 2020-01-28 03:31:23.209
# 4 2020-01-28 03:31:23.709
# 5 2020-01-28 03:31:24.209
# 6 2020-01-28 03:31:24.709
# 7 2020-01-28 03:31:25.209
# 8 2020-01-28 03:31:25.709
# 9 2020-01-28 03:31:26.209
#10 2020-01-28 03:31:26.709
# … with 14,391 more rows
推荐阅读
- python - 获取图像的 RGB 通道
- javascript - 我应该为 Angular 5 使用哪个版本的 Firebase
- angular - 如何使用 Angular 6 在 HTML 元素上绑定动态函数?
- c# - 无法将 JSON 字符串反序列化为类
- c++ - 在浮点类型方面,cuda 编程与 CPU 程序相比无法具有相同的计算精度
- xamarin - 如何在不使用插件的情况下以 Xamarin 形式录制视频?
- php - 表单发布请求返回错误 419 未知状态 laravel
- c# - 从对象的所有 [公共] 属性中创建元组的快速方法
- sql - 过去 4 天每 15 分钟按列计数
- android - CMakeModules/ModuleInstall.cmake:41 (LIST): list sub-command REMOVE_ITEM 要求 list 存在