如果byte int long float double则折叠

时间:2018-05-31 12:07:46

标签: stata collapse

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

首先,我尝试了以下内容:

collapse _all, by(countryyear)

这不起作用,因为它也试图折叠countryyear

接下来,我按如下方式修改了我的代码:

collapse S001 - country, by (countryyear)
type mismatch
r(109);

但是,我收到了一个错误,我认为这是因为并非所有变量都是数字的。

我还考虑过将if限定符添加到collapse,如下所示:

collapse _all if type==byte int long float double, by(countryyear)

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

您当然可以向if添加collapse限定符。记录在案。但是,您的特殊情况距离合法还有很长的路要走。我建议采用不同的策略:

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