rstudio - COUNTIF 在移动窗口上
问题描述
我有一列,其中数据点被分配了“1”或“2”。我想在 Excel 中使用类似于 COUNTIF 的函数,但在移动窗口上,例如 =COUNTIF(G2:G31, 2) 来确定该给定窗口中存在多少个“2”
解决方案
您也许可以使用tibbletime
.
1)由于您对状态存在感兴趣1
or 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])
推荐阅读
- database - SQLite3 数据库文件在写入临时表时是否全局锁定?
- ruby - 如何使用 ruby 获得每个广告系列的 Facebook 广告系列印象和预算列表?
- jenkins - 詹金斯变量没有扩大,为什么?
- python - Flask wtforms 不传递表单 - UndefinedError: 'form' is undefined
- python - 希望从句子中提取复合名词-形容词对。所以,基本上我想要类似的东西:
- android - Android OneTime IntentService 在应用程序被杀死时死亡
- javascript - Google Cloud Functions 部署:EROFS:只读文件系统
- xml - 如何使用 Groovy XmlParser 获取 XML 根元素属性,而无需对 XML 进行“双重解析”
- javascript - 在Javascript中搜索表格的多行和多列
- php - 只有工作日的 PHP Carbon 日期差异