我有一个数据表,其中包含可以通过唯一 ID 识别的数千家公司。它是长格式数据,每个公司应该在不同年份出现两次(两年内的横截面时间序列)。
然而,并非所有公司都在这两年出现,我正在尝试创建一个平衡的长格式面板,其中只有那些在这两年出现的公司仍然存在。我该如何做到这一点?
这是说明问题的示例数据表:
example <- matrix(c(1,1,2,3,3,2013,2016,2013,2013,2016), ncol=2)
colnames(example) <- c('id', 'year')
example.table <- data.table(example)
example.table
id year
1: 1 2013
2: 1 2016
3: 2 2013
4: 3 2013
5: 3 2016
在示例中,我需要一个代码/函数来排除 ID 为“2”的公司行,因为它在 2016 年没有匹配项。换句话说:我需要一个代码/函数,将每一行与如果 id 列中没有匹配项,则上一行和后续行并排除它。
我已经投入了很多时间,但似乎已经达到了我的 R 知识的极限,并且希望得到任何支持。谢谢!