У меня есть следующий снимок набора данных за месяц (я представляю здесь только первые два месяца, но у меня есть эти данные приблизительно для 300 000 человек за каждый месяц в 2014 году).
df<-data.frame( c(20140101, 20140116, 20140201, 20140215, 20150101, 20150201, 20150101, 20150201, 20150201),
c(20140115, 20140131, 20140214, 20140228, 20150131, 20150228, 20150131, 20150228, 20150228),
c(15, 16, 14, 14, 31, 28, 31, 28, 28),
c(0.8, 0.4, 0.8, 0.4, 0.8, 0.8, 0.8, 0.8, 0.2),
c("q1", "q1", "q1", "q2","q2","q2", "q3", "q3", "q3"))
colnames(df)<-c("Begindate", "Enddate", "Duration", "part-time", "id")
Что дает следующий вывод
ID Begindate Enddate Duration part-time
q1 2014-01-01 2014-01-15 15 0.8
q1 2014-01-16 2014-01-31 16 0.4
q1 2014-02-01 2014-02-14 14 0.8
q1 2014-02-15 2014-02-28 14 0.4
q2 2015-01-01 2015-01-31 31 0.8
q2 2015-02-01 2015-02-28 28 0.8
q3 2015-01-01 2015-01-31 31 0.8
q3 2015-02-01 2015-02-28 28 0.8
q3 2015-02-01 2015-02-28 28 0.2
История, которая соответствует вышеуказанному набору данных, более или менее выглядит следующим образом. Человек q1 работает на двух работах каждый месяц. На одном из рабочих мест он работает 0,8, а на другом - 0,4. Человек q2 имеет только одну работу и работает там по 0,8 каждый месяц. И, наконец, в третьем квартале один человек работал на одной работе, что равнялось 0,8 полной занятости. Однако с февраля он начал устраиваться на другую работу рядом с работой, которая у него уже была.
Теперь я хотел бы переписать эти данные следующим образом
ID Begindate Enddate part-time
q1 2014-01-01 2014-01-31 0.6
q1 2014-02-01 2014-02-28 0.6
q2 2015-01-01 2015-01-31 0.8
q2 2015-02-01 2015-02-28 0.8
q3 2015-01-01 2015-01-31 0.8
q3 2015-02-01 2015-02-28 1.0
Другими словами, я хотел бы переписать данные таким образом, чтобы у меня был номер неполного рабочего дня для каждого человека на месячный уровень. Другими словами, q2 не изменяется, тогда как четыре строки q1 должны быть приведены в 1 строку для каждого месяца (я округлил коэффициенты неполного рабочего времени, как вы, возможно, заметили). Более того, в 3 квартале первый месяц не должен меняться, а второй месяц должен быть приведен в одну строку. Обратите внимание, что я опустил переменную продолжительности. Это просто для того, чтобы избежать путаницы, так как меня интересует номер неполный рабочий день.
Кто-нибудь здесь знает, как это сделать? Буду признателен за любую помощь.