[英]Count by group with condition (in R data.table)
考慮一個由ID
和Val
組成的數據集。
# dataset
ID Val Counter
1 2 1
1 4 2
1 NA 2
1 13 3
1 12 4
2 NA 0
2 33 1
2 5 2
2 5 3
可以通過dt[, normal_counter := 1:.N, by=ID]
添加每個子組的計數器。 我正在尋找沒有NA
值時不會遞增的計數器(請參見上面示例中的counter
)。
這是按組划分的非NA
值的累積總和,因此:
dat[, cntr := cumsum(!is.na(Val)), by=ID]
dat
# ID Val Counter cntr
#1: 1 2 1 1
#2: 1 4 2 2
#3: 1 NA 2 2
#4: 1 13 3 3
#5: 1 12 4 4
#6: 2 NA 0 0
#7: 2 33 1 1
#8: 2 5 2 2
#9: 2 5 3 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.