Свернуть в течение цикла - PullRequest
0 голосов
/ 31 октября 2018

Итак, я занимаюсь созданием тепловой карты для 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)))

1 Ответ

0 голосов
/ 13 ноября 2018

Так что, если кому-то еще интересно, я создал индекс i, который имеет все времена от "00:00:00" до "24:00:00". Чем внутри цикла for нужно просто извлечь строки из фрейма данных, где df[time < i + 1800 & time > i,]. Убедитесь, что ваше время в формате времени, а не только в строках. Затем вы можете выполнить любые корректировки в цикле for, используя новый извлеченный фрейм данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...