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