Stata 如果字节int长浮点双精度折叠

Stata 如果字节int长浮点双精度折叠,stata,collapse,Stata,Collapse,在Stata的数据集中,我想折叠所有数值变量byte int long float double 首先,我尝试了以下方法: collapse _all, by(countryyear) 这是行不通的,因为它每年都试图崩溃 接下来,我将代码修改如下: collapse S001 - country, by (countryyear) type mismatch r(109); 然而,我得到了一个错误,我假设这是因为不是所有的变量都是数值的 我还考虑过添加一个if限定符来进行如下折叠: coll

在Stata的数据集中,我想折叠所有数值变量byte int long float double

首先,我尝试了以下方法:

collapse _all, by(countryyear)
这是行不通的,因为它每年都试图崩溃

接下来,我将代码修改如下:

collapse S001 - country, by (countryyear)
type mismatch
r(109);
然而,我得到了一个错误,我假设这是因为不是所有的变量都是数值的

我还考虑过添加一个if限定符来进行如下折叠:

collapse _all if type==byte int long float double, by(countryyear)
我如何解决这个问题

您当然可以添加一个if限定符来折叠。这是有案可查的。然而,你的特殊情况离法律还有很长的路要走。我建议采取不同的策略:

ds, has(type numeric)  
local numeric `r(varlist)' 
local byvar countryyear 
local numeric : list numeric - byvar 
collapse `numeric', by(countryyear) 

先生,你是个传奇人物。看来我确实还是有点不对劲。非常感谢……谢谢。另请参见findname Stata Journal,因为ds使用更多句柄重写。