识别满足一系列数据中至少一个条件的连续行

时间:2018-06-08 05:44:28

标签: r

我想逐行比较行并将它们标记为Case1,2,3等等,如果它们在该数据系列范围内对于至少一个变量是相似的。范围基本上是数据点到达它时的第一个“1”值,来自每行的lag0(参考)的往复运动。

data - highlighted yellow

Group,Date,Month,Sales,lag7,lag6,lag5,lag4,lag3,lag2,lag1,lag0(reference),lead1,lead2,lead3,lead4,lead5,lead6,lead7
    Group1,42005,1,2503,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1
    Group1,42036,2,3734,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0
    Group1,42064,3,6631,1,0,0,1,0,0,0,0,0,0,1,1,1,1,0
    Group1,42095,4,8606,0,1,0,1,1,0,1,0,1,1,1,0,0,0,0
    Group1,42125,5,1889,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0
    Group1,42156,6,4819,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0
    Group1,42186,7,5120,0,0,1,1,1,1,1,0,0,1,1,0,1,1,0

例如, 当你比较row1和row2时,突出显示的黄色0在至少一个变量的第一个“1”的往返范围内是相似的,因此这是case1。现在,row2和row3在至少一个变量之间也是相似的,在往返第一个“1”的范围内,并且它也与前一个案例相邻,因此这也将是case1(背对背的情况)。

Row4与前一行和下一行没有任何共同之处,因此不会被捕获。

第5行和第6行在至少一个变量上相似,因此这将是Case2,

Row7与前一行和下一行没有任何共同点,在first-to-to first'1的范围内,因此不会被捕获。

预期产出:

Month,Sales,Case
1,2503,1
2,3734,1
3,6631,1
5,1889,2
6,4819,2

我的朋友之前发布过这篇文章,因为我们正在努力争取时间,因此为这个问题带来了新的背景。

谢谢,

0 个答案:

没有答案
相关问题