【发布时间】:2020-05-20 18:11:44
【问题描述】:
我有一个数据框,其中每一行都是不同的时间戳。数据框中较旧的数据每隔 30 分钟收集一次,而较新的数据每隔 15 分钟收集一次。我想运行一个计算每行之间的时间差的 for 循环(或者可能是 ifelse 语句),如果差值等于 30 分钟(下面的示例使用 1800 秒),那么循环继续,但如果循环遇到15 分钟的时差(下面的示例使用 900 秒)它会停止并告诉我这首先发生在哪一行。
x <- as.POSIXct("2000-01-01 01:00", tz = "", "%Y-%m-%d %H:%M")
y <- as.POSIXct("2000-01-10 12:30", tz = "", "%Y-%m-%d %H:%M")
xx <- as.POSIXct("2000-01-10 12:45", tz = "", "%Y-%m-%d %H:%M")
yy <- as.POSIXct("2000-01-20 23:45", tz = "", "%Y-%m-%d %H:%M")
a.30 <- as.data.frame(seq(from = x, to = y, by = 1800))
names(a.30)[1] <- "TimeStamp"
a.15 <- as.data.frame(seq(from = xx, to = yy, by = 900))
names(a.15)[1] <- "TimeStamp"
dat <- rbind(a.30,a.15)
在示例 dat 数据帧中,时差在第 457 行从 30 分钟切换到 15 分钟。我想自动识别第一次出现这种时差变化的行。
【问题讨论】:
标签: r datetime for-loop if-statement