и заблаговременно за поиск.Подмножество через рамки данных Использование dplyr в R
У меня есть кадр данных событий (EV):
Event_ID | Person_ID | Start_Period | End_Period | Event_Type
------------------------------------------------------------
A | Person1 | 1 | 9 | Assessment
B | Person1 | 2 | 9 | Activity
C | Person1 | 3 | 6 | Assessment
D | Person2 | 3 | 6 | Activity
E | Person3 | 7 | 13 | Assessment
И у меня есть кадр данных человеко-периодов (ПП)
Person_ID | Period
----------------------
Person1 | 1
Person1 | 2
Person1 | 3
Person2 | 1
Person2 | 2
Person2 | 3
Person3 | 1
Person3 | 2
Person3 | 3
Я хочу, чтобы выяснить, для каждого периода , сколько действия или оценки продолжались в течение периода. Например, если событие Person1 в EV было начальным периодом 5 и конечным периодом 10, то это событие должно появиться в 5,6,7,8,9,10 в PP. Результат будет выглядеть следующим образом:
Person_ID | Period | ActivitiesFreq | AssessmentsFreq
----------------------------------------------
Person1 | 1 | 0 | 1
Person1 | 2 | 1 | 1
Person1 | 3 | 1 | 2
Person2 | 1 | 0 | 0
Person2 | 2 | 0 | 0
Person2 | 3 | 1 | 0
Person3 | 1 | 0 | 0
Person3 | 2 | 0 | 0
Person3 | 3 | 0 | 0
На данный момент я использую для цикла - что slow.And я сопротивляюсь присоединиться, потому что полный набор данные имеют сотни и тысячи данных. Я попытался с помощью мутировать из пакета dplyr:
mutate(PP,SUM(EV$Person_ID==Person_ID,EV$Start_Period<=Period,EV$End_Period>=Period)
, но я получаю следующее сообщение об ошибке:
Warning messages:
1: In mutate_impl(.data, dots) :
is.na() applied to non-(list or vector) of type 'NULL'
2: In mutate_impl(.data, dots) :
longer object length is not a multiple of shorter object length
3: In mutate_impl(.data, dots) :
longer object length is not a multiple of shorter object length
Я открыт для использования других пакетов - Я думаю, что я не совсем понимаю, что-то о том, как мутируют работает
@Arun Извинения, исходные данные усечены, поэтому теперь должны быть последовательными. Спасибо, что посмотрели! – user988029