【问题标题】:将 0.5 秒内平滑的数据分组为 1 分钟间隔,并获得 r 中的范围
【发布时间】:2022-01-20 01:26:24
【问题描述】:

我有一个平滑超过 0.5 秒的数据框。 我必须将数据分组为 1 分钟间隔,并为这 1 分钟间隔获取 z_diff = z_max - z_min。 1 分钟内的所有行(120 行)应具有相同的 z_diff 值。

我使用了如下的剪切功能。 但它将数据分成 1 分钟的间隔。但是,我需要在 1 分钟间隔内对所有行具有相同的 z_diff 值。 我应该如何在不拆分数据的情况下做到这一点 r

df_1min % group_by(Time_Interval = cut(df_selected$Timestamp, "60 sec")) %>% summarise(z_diff = max(z) - min(z))

样本数据

时间戳

z

【问题讨论】:

    标签: r group-by timestamp intervals difference


    【解决方案1】:
    library(tidyverse)
    
    Timestamp <- c("10:50:00.5", "10:50:01.0", "10:50:01.5", "10:50:02.0", "10:50:02.5", "10:50:03.0")
    
    z <- c(1, 2, 3, 5, 8, 7)
    
    tibble(z, Timestamp) %>% 
        mutate(Timestamp = lubridate::hms(Timestamp),
               Time_Interval = floor(Timestamp)) %>% 
        group_by(Time_Interval) %>% 
        mutate(z_diff = max(z) - min(z))
    

    【讨论】:

    • 不能在原始数据集中使用 floor 函数,因为它们是毫秒级别的时间戳数据。需要指定一种方法来获得 1 分钟的间隔,而不是使用 floor 函数
    • 如果您问题中的数据与您拥有的数据格式相匹配,这将有所帮助...
    • 无论如何,关键是你应该使用mutate而不是summarize
    • 是的,非常感谢
    猜你喜欢
    • 2011-05-19
    • 2015-12-14
    • 2017-02-27
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多