R时间序列数据集-滞后日期和时间-不规则数据周期
我正在努力处理一个包含日期和时间的数据集。我想建立新的专栏,如前一周相同时段和前一天相同时段 我在Stackoverflow中读到了几个答案,但还没有解决 以下是重新创建我的数据集的代码:R时间序列数据集-滞后日期和时间-不规则数据周期,r,R,我正在努力处理一个包含日期和时间的数据集。我想建立新的专栏,如前一周相同时段和前一天相同时段 我在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(
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))
请注意,第一行有一个NA,因为前一天上午9点没有相应的值
在第一步中,我是按升序还是降序排列它们有关系吗
期待中的感谢 像这样试试。我想你快到了
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))
库(dplyr)
df$日期%
安排(时间、日期)%>%
分组单位(时间)%>%
突变(lag_1day=lag(值,n=1,默认值=NA))%>%
安排(描述(日期、时间))
嗨,汤姆!谢谢你的快速回答!效果很好。所以,我不必按日期和时间分组?滞后函数适用于特定的分组。如果同时按日期和时间分组,则不会将每一行与其他任何行分组,因为日期和时间是唯一的。如果只按时间分组,则会将所有日期分组在一起,此时滞后函数将正常工作。
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))