У меня есть dataframe следующим образом:Запись последовательных дней по группе в R
DATE <- as.Date(c('2016-12-01', '2016-12-02', '2016-12-03', '2016-12-04', '2016-12-01', '2016-12-03', '2016-12-04', '2016-12-04'))
Parent <- c('A','A','A','A','A','A','A','B')
Child <- c('ab', 'ab', 'ab', 'ab', 'ac','ac', 'ac','bd')
salary <- c(1000, 100, 4000, 2000,1000,3455,1234,600)
avg_child_salary <- c(500, 500, 500, 500, 300, 300, 300, 9000)
Callout <- c('HIGH', 'LOW', 'HIGH', 'HIGH', 'HIGH', 'HIGH', 'HIGH', 'LOW')
employ.data <- data.frame(DATE, Parent, Child, avg_child_salary, salary, Callout)
employ.data
DATE Parent Child avg_child_salary salary Callout
1 2016-12-01 A ab 500 1000 HIGH
2 2016-12-02 A ab 500 100 LOW
3 2016-12-03 A ab 500 4000 HIGH
4 2016-12-04 A ab 500 2000 HIGH
5 2016-12-01 A ac 300 1000 HIGH
6 2016-12-03 A ac 300 3455 HIGH
7 2016-12-04 A ac 300 1234 HIGH
8 2016-12-04 B bd 9000 600 LOW
Я отфильтрованы только вчерашние данные, являющиеся 2016-12-04
следующим образом:
yesterday <- as.Date(Sys.Date()-1)
df2<-filter(employ.data, DATE == yesterday)
df2
DATE Parent Child avg_child_salary salary Callout
4 2016-12-04 A ab 500 2000 HIGH
7 2016-12-04 A ac 300 1234 HIGH
8 2016-12-04 B bd 9000 600 LOW
Моя цель состоит в том, чтобы включить столбец рядом с Callout
с указанием количества последовательных дней от 2016-12-04
выносом было HIGH
или LOW
по Child
на основе employ.data
данных. Это то, что мне нужно в качестве конечного результата:
DATE Parent Child avg_child_salary salary Callout Consec. Days with Callout
4 2016-12-04 A ab 500 2000 HIGH 2
7 2016-12-04 A ac 300 1234 HIGH 2
8 2016-12-04 B bd 9000 600 LOW 1
Спасибо!
У вас возникли проблемы с этим ответом? Если да, просьба оставить комментарий здесь. В противном случае я не получу их напрямую. – aichao
Я считаю, что вы получаете эту ошибку, потому что у вас есть группа, для которой нет даты, которая соответствует «вчера». Это правда? – aichao