首页 > 解决方案 > COUNTIF 在移动窗口上

问题描述

我有一列,其中数据点被分配了“1”或“2”。我想在 Excel 中使用类似于 COUNTIF 的函数,但在移动窗口上,例如 =COUNTIF(G2:G31, 2) 来确定该给定窗口中存在多少个“2”

折断

标签: rstudio

解决方案


您也许可以使用tibbletime.

1)由于您对状态存在感兴趣1or 2,我们可以将其重新编码为逻辑(布尔值)。假设您的 data.frame 被命名df

df$state <- df$state == 2

2) 逻辑很酷,因为我们可以简单地将它们相加,并得到TRUE值的数量:

# total number of rows with state == 2:
sum(df$state)

3)制作一个rollify函数,参见。链接:

library(tibbletime)
rolling_sum <- rollify(sum, window = 30)
df$countif = rolling_sum(df$state)

然而,这种方法不能解决前 29 行。对于那些你可以在你的情况下使用:

df$countif[1:29] <- cumsum(df$state[1:29])

推荐阅读