私は質問にリンクしています: Cumsum excluding current value 特定のcustomer.idを除いて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ソムコンプから除外する:
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を適用したいです。彼にとって、私は0に等しくなるようにprev_Apples列をしたい:
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**
だから私はこのコード行を追加するために考えた:
if(Fruits$customer id =='NULL'){
Prev_Apples = 0
return (Fruits$customer id)
}
しかし、もちろん、私はエラーを取得する: 「条件を長さ> 1で、最初の要素のみが使用されます。 "
私はエラーがなぜ発生するのか理解しましたが、どうすれば避けることができますか?前もって感謝します。
いつからコードスニペットを実行していたのですか? – InfiniteFlashChess