我曾经使用了一个非常方便的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
重新开始。
非常感谢你的帮助!
答案 0 :(得分:1)
{{1}}