簡體   English   中英

帶條件按組計數(在R data.table中)

[英]Count by group with condition (in R data.table)

考慮一個由IDVal組成的數據集。

# 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM