如何用“至少”条件设置数据帧?

时间:2019-08-05 12:39:56

标签: r

我是R的新手,正在尝试为数据帧设置子集,但是我不知道如何根据需要进行操作。具体来说,我有一个从1987年到2017年的面板数据框架,但是在2005、2007、2013和2017年观察到了我需要的一些信息。由于我可以假设这些信息随时间是恒定的,因此只要观察到一个人就足够了至少在这些年之一。 如何至少在一组2005、2009、2013、2017年中观察到条件的情况下,才能对数据框进行子集划分,以使所有年份的所有个体都如此? 谢谢。

想法如下:

pid   year 
101   1984
101   1985
101   1986
101   1987
102   1984
102   1985
102   1986
102   1987
..
102   2005
102   2006
103   1990
103   1991
103   1992
103   1993
...
103   2005

我想要为pid保留所有信息和年份,这些pid至少在2005或2009或2013或2017年具有观测值。

2 个答案:

答案 0 :(得分:0)

以R为底的猜测:

yearOk <- which(dat$year %in% c(2005, 2007, 2013, 2017)) #row with year ok
idOK <- unique(dat$id[yearOk]) #get the ids that are in these years
datOk <- dat[which(dat$id %in% idOk),] #subset dat based on the wanted ids

答案 1 :(得分:0)

这是从底数R开始使用$selected的一种方法-

ave