我需要查找数据框中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
----------
答案 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%');
}
}