r - 只保留连续季度的观察结果
问题描述
我目前正在查看连续 9 个季度的银行数据。我现在只想保留那些我拥有所有 9 个季度数据的银行。每家银行都有一个唯一的认证 ID。如何使用 ID 进行过滤并仅保留具有 9 个连续观察值的银行?
也许这样做的一种方法是计算认证 ID (cert) 出现的频率并仅保留具有 9 个观察值的那些?所以这就是我尝试的:
df <- (...)
a = rle(sort(df$cert))
b = data.frame(id=a$values, n=a$lengths)
c = subset(b, n==9)
我不确定这是否正确,因为我正在尝试重现研究论文的结果,但在此步骤之后数字不再匹配。
解决方案
一种选择是n_distinct
,group_by
按“id”分组,检查“qtr”中不同元素的数量是否为 9 以及filter
那些“id”行
library(dplyr)
df %>%
group_by(id) %>%
filter(n_distinct(qtr) ==9)
推荐阅读
- r - 如何按组在 R 中编写更简单的派生(在 R、ggplot、dplyr、tidyverse 中)?
- r - 随机生成基因组位置,限制每个基因和样本的突变数量
- web-applications - 从 Web 应用程序打开 Microsoft Teams 聊天
- reactjs - 使用 React 和 Redux 设置 Antd 的 Menu defaultSelectedKeys 值
- jenkins - 如何在 Jenkins 的动态管道中使用 failFast
- reactjs - 反应 setState 更新对象数组
- jquery - 如何有条件地更新 select2 值
- windows - 如果我们改变完整性级别,SID 会改变吗?
- react-native - React Native 0.60.5 中的 ZIndex 问题
- asp.net - 从 Visual Studio 2017 发布 ASP.NET Core 时出现“路径太长”