Фрейм данных для заполнения пропущенными значениями — функция complete()

#r #dataframe #tidyr #missing-data

Вопрос:

У меня есть начальный df кадр данных с 30 образцами, со следующими столбцами:

  1. Идентификатор : chr «ACAGA» «GTCGA» «GTCGA» «ACAGT» …
  2. значение : число 1.40 2.28 0.39 1.32 ..
  3. размер : int 119 716 626 114 …

В этом df кадре данных каждый идентификатор повторяется несколько раз.

Затем я создал второй фрейм данных с именем df2 , выбрав только те идентификаторы, которые имеют значение > 1.3, и суммировав все измерения для каждого идентификатора.

 df2 = df[value > 1.3, .(dim = sum(dimension)), by = ID] 
 

В новом df2 фрейме данных нет всех исходных идентификаторов df . В частности, есть 4 отсутствующих идентификатора, которые я хотел бы добавить в df2 фрейм данных и установить их dim значение равным 0.

Я пытался использовать complete() функцию из пакета tidyr, но написанный мной код не работает:

 complete(df2, dim, fill = list(count = 0))
 

Знаете ли вы, как я должен использовать complete() для достижения желаемого результата?

Ответ №1:

Попробуйте complete сделать следующее —

 df2 <- tidyr::complete(df2, ID = unique(df$ID), fill = list(dim = 0))