使用data.table计算组中高于阈值的值的百分比

时间:2019-10-17 23:29:03

标签: r data.table

我有一个数据集,并希望基于组({{}}获得高于一定阈值(在这种情况下,假设24,因此所有高于该值的值)的份额(V2) {1}}。

V1

结果应如下所示:

V1   V2
 A   25
 A   23
 A   25
 B   25
 B   25
 C   15
 C   15
 D   0
 D   0

理想情况下,我想在V1 share A 0.666 B 1.0 C 0 D 0

中执行此计算

1 个答案:

答案 0 :(得分:1)

mean的数量中的V2的数量V1减去# Data V1 <- c("A", "A", "A", "B", "B", "C", "C", "D", "D") V2 <- c(25, 23, 25, 25, 25, 15, 15, 0, 0) dt <- data.table(V1, V2) dt[, .(share = mean(V2 >= 24)), by = V1] # V1 share #1: A 0.6666667 #2: B 1.0000000 #3: C 0.0000000 #4: D 0.0000000

NULLIF(end_date, '2000-01-01') - CURRENT_DATE