我正在处理2006年的CES日记数据。我有一个文件,每个家庭都有一个条目,每个项目在一周的时间内购买。我有以下变量
newid
家庭ID
cost
美元成本
ucc
表示项目类型的代码
我对ucc
190111,190112,......所涵盖的餐馆支出感兴趣。我希望collapse
我的数据,因此每个newid
我都有一周内家庭餐馆支出的总和。我用了命令
collapse (sum) cost if ucc=="190111".... , by (newid)
但是,如果没有餐厅支出,我希望零,而Stata只是删除这些条目。
答案 0 :(得分:1)
您需要一个中间变量,其中有一些零用于非餐馆支出:
gen rest_exp = cond(inlist(ucc,"190111","190112"),cost,0)
collapse (sum) rest_exp, by(newid)
有一点需要注意,inlist()
对字符串有9个可能值的约束,但你可能少于或destring
,在这种情况下,限制为254.你也可以搭便车少数inlist()
和|
。