如何从 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
每年的观测值数量相同。
我正在使用 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
每年的观测值数量相同。