Мой вопрос заключается в написании кода с помощью пакета dplyr в R
У меня относительно большой размер данных (около 5 миллионов строк) с двумя столбцами: первый с отдельным идентификатором (id
), а второй с датой (date
). В настоящее время каждая строка указывает на возникновение действия (взятого индивидуумом в столбце id) в дату в столбце даты. Есть около 300 000 уникальных людей и около 2600 уникальных дат. Например, начало данных выглядит следующим образом:
id date
John12 2006-08-03
Tom2993 2008-10-11
Lisa825 2009-07-03
Tom2993 2008-06-12
Andrew13 2007-09-11
Я хотел бы изменить данные, чтобы у меня была строка для каждой возможной пары id
x date
, с дополнительным столбцом, который подсчитывает общее количество событий (возможно, принимая значение 0) для указанное лицо на данную дату.
У меня был некоторый успех с пакетом dplyr, который я использовал для подсчета количества дат даты id x, которые наблюдаются в данных.
Здесь код, который я использовал для табуляции id
x date
, подсчитывается до сих пор: (моя датафрейма называется df)
reduced = df %.%
group_by(id, date) %.%
summarize(length(date))
Моя проблема в том, что (как я сказал выше) я бы хотел иметь набор данных, который также включает 0s для пар id x date, которые не имеют связанных действий. Например, если не было обнаруженного действия для John12 в 2007-10-10, я бы хотел, чтобы результат возвращал строку для этой пары id
x date
с числом 0.
Я подумал о создании фрейма выше, а затем слияния с пустым фреймом, но я убежден, что должно быть более простое решение. Любые предложения очень ценятся!