在Stata中管理数据

在Stata中管理数据,stata,Stata,使用Stata 12,如果某个变量没有随时间变化,我将尝试从数据集中删除面板 例如,在下面的数据中,我想删除面板id 2和3,因为Accstnd不会随时间而改变 id Accstnd Year 1 DS 1990 1 DS 1991 1 DS 1992 1 DS 1993 1 DS 1994 1 DS 1995 1 DU 1996 1 DU 1997 1 DU 1998 1 DU 1999 1 DU 2000 1 DU 2

使用Stata 12,如果某个变量没有随时间变化,我将尝试从数据集中删除面板

例如,在下面的数据中,我想删除面板id 2和3,因为Accstnd不会随时间而改变

id  Accstnd Year
1   DS  1990
1   DS  1991
1   DS  1992
1   DS  1993
1   DS  1994
1   DS  1995
1   DU  1996
1   DU  1997
1   DU  1998
1   DU  1999
1   DU  2000
1   DU  2001
1   DU  2002
1   DU  2003
2   DS  1990
2   DS  1991
2   DS  1992
2   DS  1993
2   DS  1994
2   DS  1995
2   DS  1996
2   DS  1997
2   DS  1998
2   DS  1999
2   DS  2000
2   DS  2001
2   DS  2002
2   DS  2003
2   DS  2004
2   DS  2005
2   DS  2006
2   DS  2007
2   DS  2008
2   DS  2009
2   DS  2010
3   DI  1990
3   DI  1991
3   DI  1992
3   DI  1993
3   DI  1994
3   DI  1995
3   DI  1996
3   DI  1997
3   DI  1998
3   DI  1999
3   DI  2000
3   DI  2001
3   DI  2002
3   DI  2003
3   DI  2004
3   DI  2005
3   DI  2006
3   DI  2007
3   DI  2008
这似乎是一件容易的事情,但我花了最后几个小时试图弄明白,但没有运气


很抱歉,我无法附加图片,因为我是stackoverflow的新手。但是,如果您将这些数据放在excel表格中,您应该可以清楚地看到它

这是一种方法:

bys id: egen nvals=nvals(accstnd)
drop if nvals==1
对于每个id,计算accstnd的不同值的数量。在没有变化的地方,你可以把它们去掉


您需要安装egenmore软件包。

一种方法是使用第一原理和一些逻辑:

bysort id (Accstnd): drop if Accstnd[1] == Accstnd[_N]
如果按id和Accsstnd排序,并且每个面板的第一个和最后一个观察值相等,则表示变量保持常量


如果您在Accstnd中有遗漏,则需要进行进一步的工作。

因为您已经花了数小时进行尝试,您应该至少发布一次失败的尝试,例如,反映这种努力的代码。研究成果的证据通常来自用户发帖的问题。一个信息量更大的标题也将有助于人们将来搜索帮助。使用Excel查看数据的建议很奇怪。许多有经验的Stata用户根本不使用它。如果您使用有效的输入命令框定数据,并最终为可能回答问题的人提供一种简单的方法来试验您的数据。另请参阅常见问题解答