Я хотел бы расширить фрейм данных в R на основе столбца datetime в формате POSIXct. Каждая строка времени (столбец [1]) в моем фрейме данных в настоящее время представляет начало временного блока. Длина временного блока в секундах указана в столбце [2]. Я хотел бы расширить фрейм данных, чтобы дать отдельную отметку времени (строку) для каждой секунды в этом временном блоке, как указано в столбце 2.
Вот несколько примеров данных:
structure(list(datetime = structure(1:5, .Label = c("14/04/2013 17:42:29",
"14/04/2013 17:43:49", "14/04/2013 17:43:58", "14/04/2013 17:44:03",
"14/04/2013 17:44:11"), class = "factor"), duration = c(1L, 5L,
2L, 3L, 2L), mean = c(1.17, 2.36, 1.05, 1.43, 1.47)), .Names = c("datetime",
"duration", "mean"), class = "data.frame", row.names = c(NA,
-5L))
Вот что у меня сейчас есть:
datetime duration mean
14/04/2013 17:42:29 1 1.17
14/04/2013 17:43:49 5 2.36
14/04/2013 17:43:58 2 1.05
14/04/2013 17:44:03 3 1.43
14/04/2013 17:44:11 2 1.47
Вот что хотелось бы в итоге:
datetime duration mean
14/04/2013 17:42:29 1 1.17
14/04/2013 17:43:49 1 2.36
14/04/2013 17:43:50 1 2.36
14/04/2013 17:43:51 1 2.36
14/04/2013 17:43:52 1 2.36
14/04/2013 17:43:53 1 2.36
14/04/2013 17:43:58 1 1.05
15/04/2013 17:43:59 1 1.05
14/04/2013 17:44:03 1 1.43
14/04/2013 17:44:04 1 1.43
14/04/2013 17:44:05 1 1.43
14/04/2013 17:44:11 1 1.47
14/04/2013 17:44:12 1 1.47
У меня возникли проблемы с поиском простого способа выполнения этой задачи обработки, и ответы на похожие вопросы не дают мне решения этой проблемы (например, Как преобразовать 10-минутные временные блоки в 1-минутные интервалы в R, Расширить категориальный столбец во временном ряду до нескольких раз в секунду Счетчик столбцов). Я думаю, что функции типа split()
, merge()
и ddply()
могут помочь, но я не могу с этим справиться. Я все еще учусь, поэтому будем благодарны за любые предложения.