如何从 R 中的面板数据中删除不平衡组

How to drop the unbalanced groups from panel data in R

我正在使用 R 中 'pglm' 包中的数据集 HealthIns。我想删除所有观察次数不同于 5 的个体(其中一些只观察了三年) ).因此,我只想用我拥有 1、2、3、4、5 年数据的个人创建一个新的数据框。 关于我该怎么做的任何建议? 提前谢谢你

首先让我们找出哪些 id 拥有所有五年的数据:

# Load library
library(tidyverse) 

complete <- HealthIns %>% 
  group_by(id) %>% 
  count() %>% 
  ungroup() %>% 
  filter(n == 5) %>% 
  pull(id)

现在我们可以用它来过滤数据了:

df <- HealthIns %>% 
  filter(id %in% complete)

让我们检查一下 df 是否正确:

df %>% 
  group_by(year) %>% 
  count()

# A tibble: 5 x 2
# Groups:   year [5]
   year     n
  <dbl> <int>
1     1  1584
2     2  1584
3     3  1584
4     4  1584
5     5  1584

如您所见,df 每年的观测值数量相同。