【发布时间】:2022-01-25 03:33:34
【问题描述】:
对于一个小型研究项目,我必须使用一个包含多个国家和多年的基尼系数的大型面板数据集。然而,数据并不总是每年收集一次,而且经常会出现一个国家只有几个数据点可用的情况。
我的目标是只选择那些连续两年或更长时间可用的国家/地区。
例如: 答:2008 10 2012 10.7 2015 年 12 月
应该从数据集中删除,但是,我想保留以下实体:
乙:2001 5 2002 5.6 2003 7 2009 8.6
我尝试了以下代码:
df_new <- ddply(df, "country", function(x) {
cons_idx <- which(diff(x$year) == 1)
cons_idx <- sort(unique(c(cons_idx, cons_idx + 1)))
x[cons_idx, ]
})
基于 stakoverflow 1 上发布的类似问题
虽然这段代码确实(正确地)丢弃了 A,但它也从 B 中丢弃了 2009。 因此,它返回: 乙:2001 5 2002 5.6 2003 7
但是,我确实希望包括 2009 年,只是应该丢弃没有连续两年的实体。
我的直觉是我必须使用某种 if-else 语句,但我真的被卡住了。任何帮助将不胜感激!
【问题讨论】:
标签: r data-cleaning panel-data longitudinal