在data.framedf中,我需要构造列计数。对于同一customer_id,它应该递增地计数两个Buy=TRUE之间的连续Buy=FALSE。然而,如果对于相同的customer_id没有先前的Buy=TRUE,则它应该是NA。一个data.table或dplyr解决方案会很好。
df <- data.frame(
customer_id = rep(1:2, each = 6),
Buy = c(FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, TRUE, FALSE),
count = c(NA, NA, 0, 1, 2, 0, NA, 0, 1, 0, 0, 1)
)
2条答案
按热度按时间ryevplcw1#
r3i60tvu2#
一种方法可能是