R 面板数据框中分组观测的条件

R 面板数据框中分组观测的条件,r,R,我有一个像这样的数据框 id year changetype 1 2010 1 1 2012 2 2 2014 2 2 2014 2 3 2012 1 3 2012 2 3 2014 2 3 2014 1 id year changetype 1 2010 1 1 2012 2 2 2014

我有一个像这样的数据框

id year changetype
 1  2010         1
 1  2012         2
 2  2014         2
 2  2014         2
 3  2012         1
 3  2012         2
 3  2014         2
 3  2014         1
id year changetype
 1  2010         1
 1  2012         2
 2  2014         2
 2  2014         2
我想买这样的东西

id year changetype
 1  2010         1
 1  2012         2
 2  2014         2
 2  2014         2
 3  2012         1
 3  2012         2
 3  2014         2
 3  2014         1
id year changetype
 1  2010         1
 1  2012         2
 2  2014         2
 2  2014         2
换句话说,我想删除与id 3相关的所有观察结果,因为在同一年(2012年),id=3同时表示changetype=1和changetype=2

如何对变量施加条件,以便按id和年份进行分组观察?
非常感谢所有帮助我的人。

您可以使用
data.table
包来实现这一点-

library(data.table)
setDT(dt)
dt[,count:=lapply(.SD,function(x)length(unique(x))), by=.(id,year)]
dt[,keep:=uniqueN(count), by=id][keep==1,.(id,year,changetype)]

   id year changetype
1:  1 2010          1
2:  1 2012          2
3:  2 2014          2
4:  2 2014          2

您可以使用
data.table
包来实现这一点-

library(data.table)
setDT(dt)
dt[,count:=lapply(.SD,function(x)length(unique(x))), by=.(id,year)]
dt[,keep:=uniqueN(count), by=id][keep==1,.(id,year,changetype)]

   id year changetype
1:  1 2010          1
2:  1 2012          2
3:  2 2014          2
4:  2 2014          2