2017-12-12 1 views
0

시계열을 통해 그룹 내의 각 하위 그룹의 수/합계를 계산하고 싶습니다.여러 조건에 의한 시계열에 걸친 이벤트 유형을 계산하십시오.

내 질문에이 질문과 매우 유사합니다. Rolling Count of Events Over Time Series.

크로스 게시에 대한 사과, 나는 시간 범위 (현재 날짜와 이전 N (말) 4 일) 내에 그룹 1의 각 카테고리에 대한 이벤트를 세는 방법을 찾고있었습니다. 그룹 2의 모든 하위 유형에 대해이 과정을 반복하고 싶습니다. 즉, 그룹 2는 그룹 1의 모든 카테고리를 포함 할 수도 있고 포함하지 않을 수도있는 더 큰 그룹입니다.

예를 들어 다음과 같은 데이터 프레임이있는 경우 다음과 같습니다.

dates = as.Date(c("2011-10-09", 
    "2011-10-15", 
    "2011-10-16", 
    "2011-10-18", 
    "2011-10-21", 
    "2011-10-22", 
    "2011-10-24")) 
group1=c("A", 
    "A", 
    "A", 
    "A", 
    "L", 
    "L", 
    "A") 
group2=c("I", 
    "I", 
    "I", 
    "I", 
    "I", 
    "I", 
    "II") 

df1 <- data.frame(dates, group1, group2) 

그리고 저는 이와 비슷한 출력을 찾고 있습니다. (편집 됨) 결국, 나는 데이터 세트를 전파하여 그룹 1의 카테고리를 별도의 열로 구성하고 날짜와 그룹 2에 따라 행을 정렬합니다. 그룹 1 카테고리의 수를 새로운 행 (그리고 위에 명시된 시간 틀을 만족합니까?)

  dates group1 group2 count (A) count (L) 
    1 2011-10-09  A  I  1   0 
    2 2011-10-15  A  I  1   0 
    3 2011-10-16  A  I  2   0 
    4 2011-10-18  A  I  3   0 
    5 2011-10-21  L  I  0   1 
    6 2011-10-22  L  I  0   2 
    7 2011-10-24  A  II  1   0 

고마워요!

답변

0

당신이 이벤트에 이르기까지 4 일 그룹 1과 그룹 2에서 이벤트의 모든 항목의 수를 표시하려는 경우, 당신은 다음 개별적으로 각 날짜에 액세스 할 수 sapply를 사용하여 (단지 group_by 두 이벤트 그룹을 셀 수).

df1 %>% 
    group_by(group1, group2) %>% 
    mutate(count = sapply(dates 
         , function(x){ 
          sum(dates <= x & dates > (x-4)) 
          })) 

반환 : 당신이 여기 너무 이전 게시물에 제안처럼

 dates group1 group2 count 
     <date> <fctr> <fctr> <int> 
1 2011-10-09  A  I  1 
2 2011-10-15  A  I  1 
3 2011-10-16  A  I  2 
4 2011-10-18  A  I  3 
5 2011-10-21  L  I  1 
6 2011-10-22  L  I  2 
7 2011-10-24  A  II  1 
+0

감사합니다 마크, 내가 GROUP_BY 사용. 결국 나는 그룹 1의 카테고리를 별도의 열로 구성하고 날짜와 그룹 2에 따라 정렬하도록 데이터 세트를 보급하려고합니다. 어떻게 그룹 1 카테고리의 수를 새 행으로 이전 할 것인지 (그리고 위에서 언급 한 기간을 충족 시키는가?) 감사합니다 – cyb

+0

확산은 근본적으로 다른 질문처럼 보입니다. 원하는 것을 보여주는 샘플 데이터 세트를 생성하고 그에 대한 새로운 질문을해야 할 것입니다. 제가 여기있는 것은 이미 당신이 물어 본 질문에 답한 것입니다. (새로운 질문을 생성하는 경우 언제든지 의견이 있으면 링크를 삭제 해주십시오. –

+0

팁 마크를 보내 주셔서 감사합니다. 다른 질문을 만들었습니다. https://stackoverflow.com/ 질문/47781899/fill-count-sum-on-previous-row-count-over-time-series – cyb

관련 문제