Предположим, у меня возникли следующие набор данныхНайти количество дневными интервалами для каждой группы
data
Group Date
A 2016-03-10
A 2016-03-11
A 2016-03-12
A 2016-04-13
A 2016-04-14
A 2016-05-15
A 2016-05-16
A 2016-05-17
B 2016-02-11
B 2016-02-12
B 2016-02-13
B 2016-02-19
B 2016-03-15
Я хочу, чтобы найти различные интервалы дат для каждой группы. Например, для группы А от 2016-03-10 до 2016-03-12 должен быть интервал 1, 2016-04-13 - 2016-04-14 должен быть интервалом 2 и 2016-05-15 до 2016-05-17 должен быть интервал 3. Я хочу найти, где все разрывы и сколько разрывов произошло для каждой группы. Таким образом, я могу проанализировать это. Это должно быть рассчитано для каждой группы. Следующие должны быть мой идеальный выход,
Group Date Interval
A 2016-03-10 1
A 2016-03-11 1
A 2016-03-12 1
A 2016-04-13 2
A 2016-04-14 2
A 2016-05-15 3
A 2016-05-16 3
A 2016-05-17 3
B 2016-02-11 1
B 2016-02-12 1
B 2016-02-13 1
B 2016-02-19 2
B 2016-03-15 3
Ниже приведены мои tryings,
data %>% group_by(Group) %>% mutate(Date - lag(Date)) .
Это дает мой вывод НАН Украины на первом ряду, 1 в случае изменения даты и 0, когда оно не изменится. Но я хочу что-то вроде 1,2,3 для каждого интервала дат.
Обновленный набор данных, для которых он не работает,
group date count
(factor) (date)
1 Albany 2016-02-15 55
2 Albany 2016-02-16 1
3 Albany 2016-04-08 40
Я получаю ошибку «Ошибка в View: ожидается одно значение» для команда. Это нормально до даты - запаздывания (дата), но после этого, когда мы даем это значение по умолчанию = сначала (дата), я получаю одно значение. Можете ли вы помочь? – haimen
Не очень уверен. Он работает на примере, который вы дали. Является ли ваш столбец 'Date' класса' Date'? Попробуйте 'lapply (df, class)', чтобы узнать, какой класс у вас есть для каждого столбца. – Psidom
есть. Один фактор, а другой - дата. – haimen