【问题标题】:R time series dataset - Lag date and time - Irregular data periodsR时间序列数据集 - 滞后日期和时间 - 不规则的数据周期
【发布时间】:2018-08-27 08:52:12
【问题描述】:

我正在为包含 日期 和 时间 的数据集而苦苦挣扎。我想构建新的列,例如 same_period_previous_week 和 same_period_previous_day。

我已经在 Stackoverflow 中阅读了几个答案,但无法修复它。

这是重新创建我的数据集的代码:

structure(list(date = structure(c(3L, 3L, 3L, 3L, 2L, 2L, 2L, 1L, 1L, 1L), .Label = c("8/19/2018", "8/25/2018", "8/26/2018" ), class = "factor"), time = c(9L, 10L, 11L, 12L, 10L, 11L, 12L, 10L, 11L, 12L), value = c(2L, 15L, 25L, 35L, 10L, 20L, 30L, 7L, 14L, 21L)), .Names = c("date", "time", "value"), class = "data.frame", row.names = c(NA, -10L))

看起来像这样:

date       time value
8/26/2018   9   2
8/26/2018   10  15
8/26/2018   11  25
8/26/2018   12  35
8/25/2018   10  10
8/25/2018   11  20
8/25/2018   12  30
8/19/2018   10  7
8/19/2018   11  14
8/19/2018   12  21

我尝试过使用 dplyr,首先对数据集进行排序,然后对其进行分组并创建一个滞后列.这是我的代码:

df <- df %>% arrange(date, time)
df_tmp <- df %>% group_by(date, time) %>% mutate(lag_1day = lag(value, n = 1, default = NA))

新列 (lag_1day) 以几个 NA 结束。

我希望得到以下结果:

date    time    value   lag_1day
8/26/2018   9   2       NA
8/26/2018   10  15      10
8/26/2018   11  25      20
8/26/2018   12  35      30
8/25/2018   10  10      7
8/25/2018   11  20      14
8/25/2018   12  30      21
8/19/2018   10  7       NA
8/19/2018   11  14      NA
8/19/2018   12  21      NA

请注意,第一行有一个 NA,因为前一天上午 9 点没有对应的值。

第一步是按升序还是降序排列有关系吗?

感谢期待!

【问题讨论】:

    标签: r


    【解决方案1】:

    试试这样。我想你快到了。

    library(dplyr)
    
    df$date <- as.Date(df$date, '%m/%d/%Y')
    
    df %>%
      arrange(time, date) %>% 
      group_by(time) %>%
      mutate(lag_1day = lag(value, n = 1, default = NA)) %>% 
      arrange(desc(date, time))
    

    【讨论】:

    • 嗨,汤姆!感谢您的快速回答!效果很好。所以,我不必按日期和时间分组?
    • 滞后功能适用于特定的分组。如果您同时按日期和时间分组,则每一行都不会与其他任何内容分组,因为日期和时间在一起是唯一的。如果您按时间分组,这会将所有日期分组在一起,此时您的延迟功能将正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2021-07-06
    • 1970-01-01
    • 2015-06-24
    • 2015-06-03
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多