在R中的数据集中找到三个连续的零

时间:2017-02-26 04:59:48

标签: r

我需要查找数据框中Balance列中是否有三个连续的零。我需要在特定RelNo内连续3个月检查余额是否为零。它是一个大型数据集。我的数据框看起来像这样:

------------------------------------
RelNo   -----Date   --- -----    Balance
--------------------------------------
AAAA    ---- 1/1/2014 ----       0
-------------------------------------
AAAA    --- 2/1/2014  ----       0
-------------------------------------
AAAB    --- 1/1/2014  ---       22
------------------------------------
AAAB    --- 2/1/2014 ---        2
-----------------------------------
AAAA    --- 3/1/2014 ---       0
---------------------------------
AAAA    --- 4/1/2014 ---       0
--------------------------------
AAAB    --- 3/1/2014 ---      32
-------------------------------
AAAC   ---- 1/1/2014 ---      45
----------

1 个答案:

答案 0 :(得分:0)

也许我们可以使用data.table来创建逻辑列。转换' data.frame'到' data.table' (setDT(df1)),order由' RelNo'和'日期' (转换为Date课程后),按照' RelNo'分组和逻辑向量(Balance==0)的run-length-id,我们检查all' Balance'中的值是否为.N >=3。为0,如果行数大于3(:=)并将(library(data.table) setDT(df1)[order(RelNo, as.Date(Date, "%d/%m/%Y")), ind := all(Balance==0) & .N >=3, .(RelNo, rleid(Balance==0))] df1 # RelNo Date Balance ind #1: AAAA 1/1/2014 0 TRUE #2: AAAA 2/1/2014 0 TRUE #3: AAAB 1/1/2014 22 FALSE #4: AAAB 2/1/2014 24 FALSE #5: AAAA 3/1/2014 0 TRUE #6: AAAA 4/1/2014 0 TRUE #7: AAAB 3/1/2014 32 FALSE #8: AAAC 1/1/2014 45 FALSE )逻辑输出分配给' ind'专栏

var fadelft = function(cm){
    if ($(document).scrollTop() + $(window).height() >= $(cm).offset().top)
    {
        $(cm).animate({'left': '0%'}, 1000);
    }else{
        $(cm).css('left', '50%');
    }
}