다음에 링크 된 질문이 있습니다. Cumsum excluding current value 특정 customer.id를 제외하고 cumsum을 적용하는 방법? 예를 들어 :일부 행을 제외한 Cumsum
order.id customer.id Apples Peaches Pears
1001 J Car Ltd 1 0 0
1002 Som Comp 1 2 0
1005 Richardson 0 0 1
1004 J Car Ltd 1 0 0
1003 J Car Ltd 2 0 0
1006 Richardson 1 0 1
1007 Aldridge 0 0 1
1008 J Car Ltd 0 0 1
1010 Som Comp 0 1 0
내가 이전의 사과 주문을 추적 할 cumsum을 적용 할 :
Fruits <- Fruits[order(Fruits$order.id), ] #sort data
Fruits$prev_Apples<-with(Fruits,
ave(
ave(Apples, customer.id, FUN=function(x) c(0, head(cumsum(x), -1))), #get running sum per customer.id
interaction(customer.id, order.id, drop=T),
FUN=max, na.rm=T) #find largest sum per index per seg
)
을하지만 나는 또한 내 cumsum에서 제외 할은 솜 경화제를 customer.id. "조건 :
이if(Fruits$customer id =='NULL'){
Prev_Apples = 0
return (Fruits$customer id)
}
는 그러나 물론 나는 오류를 얻을 :
order id customer id Apples Peaches Pears Prev_Apples
1001 J Car Ltd 1 0 0 0
1002 Som Comp **1** 2 0 0
1003 J Car Ltd 2 0 0 1
1004 J Car Ltd 1 0 0 3
1005 Richards 0 0 1 0
1006 Richards 1 0 1 0
1007 Aldridge 0 0 1 0
1008 J Car Ltd 0 0 1 4
1010 Som Comp 1 0 0 **0**
그래서 나는이 코드 줄을 추가 생각 : 그에게 나는 prev_Apples 열이 동일 0에가되고 싶어요 길이가 1보다 크고 첫 번째 요소 만 사용됩니다. "
왜 오류가 발생하는지 알았지 만 어떻게 피할 수 있습니까? 미리 감사드립니다.
언제부터 코드 스 니펫을 실행 했습니까? – InfiniteFlashChess