识别向量中的值的变化

时间:2016-11-17 00:06:53

标签: r

我曾经使用了一个非常方便的r函数,它可以返回一个向量,其值在另一个变量的每次更改时递增。 这是我的输入data.frame,使用以下代码生成:

set.seed(0) data.frame(Day=seq(as.Date("2016-10-01"),as.Date("2016-10-10"),by="day"), bit=sample(c(0,1),size=10,replace=TRUE))

Day          bit
2016-10-01   1
2016-10-02   0
2016-10-03   0
2016-10-04   1
2016-10-05   1
2016-10-06   0
2016-10-07   1
2016-10-08   1
2016-10-09   1
2016-10-10   1

我需要额外的列bit.change

Day          bit bit.change
2016-10-01   1   1
2016-10-02   0   2
2016-10-03   0   2
2016-10-04   1   3
2016-10-05   1   3
2016-10-06   0   4
2016-10-07   1   5
2016-10-08   1   5
2016-10-09   1   5
2016-10-10   1   5

我有一个比较bit与其滞后值的解决方案,但它并不优雅。 有谁知道我的意思是什么? 如果可能,它应该与dplyr::mutate()dplyr::group_by()一起使用。如果指定了group_by()bit.change应该从每个新组的1重新开始。 非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

{{1}}