在 for 循环中滚动应用
Rollapply in for loop
所以,我正在做的是为 x
和 y
坐标创建热图。但我想每隔 30 分钟执行一次。例如,第一个热图将使用从 "00:00:00"
到 "00:30:00"
的数据创建,然后是下一个从 "00:01:00"
到 "00:31:00"
.
的数据
我需要帮助的是编写一个 for 循环,它可以从更大的数据库中提取这些行,然后为每个数据括号输出热图。有人告诉我 zoo::rollapply
可能在这个过程中有用,但我不确定它是如何工作的。
数据库有三列x
、y
和indiv.times
。 x
和 y
是坐标系,indiv.times
是一个包含时间的字符变量,例如 "13:04:46"
格式。
for (i in ???) {
kde <- kde2d(x, y)
plot_ly(z = kde$z, type = "heatmap")
}
这是创建热图的代码,所以我真的只需要一种方法来提取 30 分钟的时间间隔。
如有任何帮助,我们将不胜感激。
这是数据库的示例:
structure(list(x = c(224.7666, 223.3886, 131.7025, 345.333),
y = c(60.7657, 85.73872, 77.35342, 26.24607), indiv.times = Sys.time() +
cumsum(60*sample(20, size = 10, replace = TRUE)), class = "data.frame", row.names = c(NA, -4L)))
因此,如果其他人有兴趣,我创建了一个索引 i
,其中包含从 "00:00:00"
一直到 "24:00:00"
的所有时间。在 for
循环中,您只需要从 df[time < i + 1800 & time > i,]
所在的数据框中提取行。确保您的时间采用时间格式,而不仅仅是字符串。然后您可以使用新提取的数据框在 for 循环中执行任何调整。
所以,我正在做的是为 x
和 y
坐标创建热图。但我想每隔 30 分钟执行一次。例如,第一个热图将使用从 "00:00:00"
到 "00:30:00"
的数据创建,然后是下一个从 "00:01:00"
到 "00:31:00"
.
我需要帮助的是编写一个 for 循环,它可以从更大的数据库中提取这些行,然后为每个数据括号输出热图。有人告诉我 zoo::rollapply
可能在这个过程中有用,但我不确定它是如何工作的。
数据库有三列x
、y
和indiv.times
。 x
和 y
是坐标系,indiv.times
是一个包含时间的字符变量,例如 "13:04:46"
格式。
for (i in ???) {
kde <- kde2d(x, y)
plot_ly(z = kde$z, type = "heatmap")
}
这是创建热图的代码,所以我真的只需要一种方法来提取 30 分钟的时间间隔。
如有任何帮助,我们将不胜感激。
这是数据库的示例:
structure(list(x = c(224.7666, 223.3886, 131.7025, 345.333),
y = c(60.7657, 85.73872, 77.35342, 26.24607), indiv.times = Sys.time() +
cumsum(60*sample(20, size = 10, replace = TRUE)), class = "data.frame", row.names = c(NA, -4L)))
因此,如果其他人有兴趣,我创建了一个索引 i
,其中包含从 "00:00:00"
一直到 "24:00:00"
的所有时间。在 for
循环中,您只需要从 df[time < i + 1800 & time > i,]
所在的数据框中提取行。确保您的时间采用时间格式,而不仅仅是字符串。然后您可以使用新提取的数据框在 for 循环中执行任何调整。