【发布时间】:2021-01-08 12:18:54
【问题描述】:
我想在不同的夜晚拆分时间序列数据集(仅包括夜间数据!)以分别为每个夜晚应用缺失值插补方法。这就是为什么我需要创建一个新变量“night”,分别标记每个晚上。
任何想法如何通过应用 dplyr::if_else()- 函数(例如,通过在 if 条件中使用“day”或“time”变量)正确创建变量“night”?
这是样本数据:
# Sample Data
timestamp <- c("2020-05-26 04:15:33","2020-05-26 06:15:33","2020-05-26 22:15:33", "2020-05-26 23:15:33", "2020-05-27 00:15:33", "2020-05-27 04:15:33", "2020-05-27 22:15:33","2020-05-28 00:15:33", "2020-05-28 04:15:33", "2020-05-28 22:15:33", "2020-05-29 00:15:33")
time <- c("04:15:33","06:15:33","22:15:33", "23:15:33", "00:15:33", "04:15:33", "22:15:33","00:15:33", "04:15:33", "22:15:33", "00:15:33")
day <- c(1,1,1,1,2,2,2,3,3,3,4)
df <- as.data.frame(cbind(timestamp, time, day))
df
# timestamp time day
# 1 2020-05-26 04:15:33 04:15:33 1
# 2 2020-05-26 06:15:33 06:15:33 1
# 3 2020-05-26 22:15:33 22:15:33 1
# 4 2020-05-26 23:15:33 23:15:33 1
# 5 2020-05-27 00:15:33 00:15:33 2
# 6 2020-05-27 04:15:33 04:15:33 2
# 7 2020-05-27 22:15:33 22:15:33 2
# 8 2020-05-28 00:15:33 00:15:33 3
# 9 2020-05-28 04:15:33 04:15:33 3
# 10 2020-05-28 22:15:33 22:15:33 3
# 11 2020-05-29 00:15:33 00:15:33 4
这将是正确的结果:
# Sample Data - CORRECT RESULT
df_result
# timestamp time day night
# 1 2020-05-26 04:15:33 04:15:33 1 night0
# 2 2020-05-26 06:15:33 06:15:33 1 night0
# 3 2020-05-26 22:15:33 22:15:33 1 night1
# 4 2020-05-26 23:15:33 23:15:33 1 night1
# 5 2020-05-27 00:15:33 00:15:33 2 night1
# 6 2020-05-27 04:15:33 04:15:33 2 night1
# 7 2020-05-27 22:15:33 22:15:33 2 night2
# 8 2020-05-28 00:15:33 00:15:33 3 night2
# 9 2020-05-28 04:15:33 04:15:33 3 night2
# 10 2020-05-28 22:15:33 22:15:33 3 night3
# 11 2020-05-29 00:15:33 00:15:33 4 night3
【问题讨论】:
标签: r if-statement dplyr timestamp subset