Допустим, у меня есть dataframe:Расширение данных временных рядов длиной формата с недостающими Ряды
df <- data.frame(group = c('A','A','A','B','B','B','C','C','C'),
time = c(1,2,4,1,2,3,5,7,8),
data = c(5,6,7,8,9,10,1,2,3))
То, что я хочу сделать, это вставить данные в кадр данных, где она отсутствует в последовательности. Таким образом, в приведенном выше примере мне не хватает данных для времени = 3 для группы A, а время = 4 для группы B и времени = 6 для группы C. Я бы по сути захотел поставить NAs вместо столбца данных. Как я могу добавить эти дополнительные строки? Мне нужно обобщенное решение ПРИМЕЧАНИЕ: Я ИЗОБРАЖЕН ВОПРОС, КАК ЕСТЬ ОШИБКА ОСТРОВА МЫ НЕ МОЖЕМ ПРИНИМАТЬ, ЧТО БУДЕТ ТОЛЬКО 4 ЗАМЕЧАНИЯ ДЛЯ КАЖДОЙ ГРУППЫ.
Цель будет:
df <- data.frame(group = c('A','A','A','A','B','B','B','C','C','C','C'),
time = c(1,2,3,4,1,2,3,5,6,7,8),
data = c(5,6,NA,7,8,9,10,1,NA,2,3))
«Итак, в приведенном выше примере у меня отсутствуют данные для времени = 3 для группы A, а время = 4 для группы B и времени = 6 для группы C." - Откуда ты это знаешь? Есть ли другая структура данных, которая говорит вам об этом, или есть критерий, который вы можете сформулировать, посредством чего вы можете сделать это из показанного кадра данных? – Amadan
Один из следующих вариантов: 'df.fill = merge (df, expand.grid (group = unique (df $ group), time = min (df $ time): max (df $ time)), all = TRUE)' , 'expand.grid' создает фрейм данных, содержащий все возможные комбинации' group' и 'time'. Вы объединяете это в свой исходный фрейм данных как полное соединение ('all = TRUE' позаботится об этом), давая вам новые строки для отсутствующих комбинаций. – eipi10
Этот вопрос кажется дублирующим [this] (http://stackoverflow.com/questions/9996452/r-find-and-add-missing-non-existing-rows-in-time-related-data-frame) , [this] (http://stackoverflow.com/questions/16787038/r-insert-rows-for-missing-dates-times), [это] (http://stackoverflow.com/questions/31150028/insert- missing-time-rows-in-a-dataframe) и, возможно, другие вопросы SO. – eipi10