如果 byte int long float double 则折叠
Collapse if byte int long float double
在 Stata 的数据集中,我想折叠所有数值变量 (byte int long float double)。
首先,我尝试了以下方法:
collapse _all, by(countryyear)
这不起作用,因为它也试图折叠 countryyear
。
接下来,我修改了我的代码如下:
collapse S001 - country, by (countryyear)
type mismatch
r(109);
但是,我得到了一个错误,我认为这是因为并非所有变量都是数字的。
我还考虑过向 collapse
添加一个 if
限定符,如下所示:
collapse _all if type==byte int long float double, by(countryyear)
我该如何解决这个问题?
您当然可以在 collapse
中添加 if
限定符。这是记录在案的。但是,您的特殊情况离合法还有很长的路要走。我建议采用不同的策略:
ds, has(type numeric)
local numeric `r(varlist)'
local byvar countryyear
local numeric : list numeric - byvar
collapse `numeric', by(countryyear)
在 Stata 的数据集中,我想折叠所有数值变量 (byte int long float double)。
首先,我尝试了以下方法:
collapse _all, by(countryyear)
这不起作用,因为它也试图折叠 countryyear
。
接下来,我修改了我的代码如下:
collapse S001 - country, by (countryyear)
type mismatch
r(109);
但是,我得到了一个错误,我认为这是因为并非所有变量都是数字的。
我还考虑过向 collapse
添加一个 if
限定符,如下所示:
collapse _all if type==byte int long float double, by(countryyear)
我该如何解决这个问题?
您当然可以在 collapse
中添加 if
限定符。这是记录在案的。但是,您的特殊情况离合法还有很长的路要走。我建议采用不同的策略:
ds, has(type numeric)
local numeric `r(varlist)'
local byvar countryyear
local numeric : list numeric - byvar
collapse `numeric', by(countryyear)