按组细分面板数据 [英] Subset panel data by group
本文介绍了按组细分面板数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想按组对不平衡的面板数据集进行子集化.对于每个小组,我都希望在第一年和最后几年保留这两个观察结果.
I would like to subset an unbalanced panel data set by group. For each group, I would like to keep the two observations in the first and the last years.
如何最好地在R中做到这一点?例如:
How do I best do this in R? For example:
dt <- data.frame(name= rep(c("A", "B", "C"), c(3,2,3)),
year=c(2001:2003,2000,2002,2000:2001,2003))
> dt
name year
1 A 2001
2 A 2002
3 A 2003
4 B 2000
5 B 2002
6 C 2000
7 C 2001
8 C 2003
我想拥有的东西:
name year
1 A 2001
3 A 2003
4 B 2000
5 B 2002
6 C 2000
8 C 2003
推荐答案
这是一种可能的data.table
快速解决方案
Here's a quick possible data.table
solution
library(data.table)
setDT(dt)[, .SD[c(1L, .N)], by = name]
# name year
# 1: A 2001
# 2: A 2003
# 3: B 2000
# 4: B 2002
# 5: C 2000
# 6: C 2003
或者如果您只有两列
dt[, year[c(1L, .N)], by = name]
这篇关于按组细分面板数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文