gpt4 book ai didi

R:如何在毫秒级别重新采样日期时间变量?

转载 作者:行者123 更新时间:2023-12-01 11:21:51 24 4
gpt4 key购买 nike

我有一个如下所示的数据框

library(dplyr)
library(lubridate)
time = c('2013-01-03 22:04:21.549', '2013-01-03 22:04:21.549', '2013-01-03 22:04:21.559', '2013-01-03 22:04:23.559' )
value = c(1,2,3,4)

data <- data_frame(time, value)
data <-data %>% mutate(time = ymd_hms(time))

# A tibble: 4 × 2
time value
<dttm> <dbl>
1 2013-01-03 22:04:21.549 1
2 2013-01-03 22:04:21.549 2
3 2013-01-03 22:04:21.559 3
4 2013-01-03 22:04:23.559 4

我想每 200 重新采样这个数据帧毫秒 .

即取 value的平均值每 200 毫秒。

我知道可以用 lubridate::floor_date(time, '1 second')高达 second精度,但不适用于 milliseconds .

在上面的例子中,行 1 , 2 , 和 34 时应分组在一起应该是单独的(注意它与其他人相隔 2 秒)。

有任何想法吗?
谢谢!

最佳答案

由于您使用了 [xts]标签,这是一个 xts 解决方案:

options(digits.secs=6)
require(xts)
x <- xts(1:4, as.POSIXct(c('2013-01-03 22:04:21.549', '2013-01-03 22:04:21.549',
'2013-01-03 22:04:21.559', '2013-01-03 22:04:23.559')))
period.apply(x, endpoints(x, "ms", 200), mean)
# [,1]
# 2013-01-03 22:04:21.559 2
# 2013-01-03 22:04:23.559 4

从您的 data 开始目的:
x <- with(data, xts(value, time))
period.apply(x, endpoints(x, "ms", 200), mean)

关于R:如何在毫秒级别重新采样日期时间变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41402202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com