我有一个看起来像这样的数据框
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和年份分组观察? 非常感谢大家的帮助。
答案 0 :(得分:0)
您可以使用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