dplyrを使用して条件付き累積合計を計算しようとしていますが、問題が発生しています。私はデータフレームを持っていて、条件が真である限り、グループごとにcumsumしたい。次の例を参照してください:私は、次の線に沿って考えていたが、誰もがアイデアを持って、働いていないdplyrと条件付き累積和
prod act sales cum_sales
1 A TRUE 100 100
2 A TRUE 120 220
3 A TRUE 190 410
4 A FALSE 50 410
5 B TRUE 30 30
6 B TRUE 40 70
7 B FALSE 50 70
8 B FALSE 10 70
9 B FALSE 30 70
:
df <- data.frame(prod = c("A", "A", "A", "A", "B", "B", "B", "B", "B"),
act = c(TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE),
sales = c(100,120, 190, 50, 30, 40, 50, 10, 30))
prod act sales
1 A TRUE 100
2 A TRUE 120
3 A TRUE 190
4 A FALSE 50
5 B TRUE 30
6 B TRUE 40
7 B FALSE 50
8 B FALSE 10
9 B FALSE 30
はに行きますか?
dfb <- df %>% group_by(prod) %>%
mutate(cum_sales = ifelse(act == TRUE, cumsum(sales), lag(sales)))
ありがとうございます!
すばらしく簡単です、ありがとう! – tonyk