折叠变量和另一个变量的条件

时间:2015-03-26 21:15:44

标签: stata

我正在处理2006年的CES日记数据。我有一个文件,每个家庭都有一个条目,每个项目在一周的时间内购买。我有以下变量

newid家庭ID

商品的

cost美元成本

ucc表示项目类型的代码

我对ucc 190111,190112,......所涵盖的餐馆支出感兴趣。我希望collapse我的数据,因此每个newid我都有一周内家庭餐馆支出的总和。我用了命令

 collapse (sum) cost if ucc=="190111".... , by (newid) 

但是,如果没有餐厅支出,我希望零,而Stata只是删除这些条目。

1 个答案:

答案 0 :(得分:1)

您需要一个中间变量,其中有一些零用于非餐馆支出:

gen rest_exp = cond(inlist(ucc,"190111","190112"),cost,0)
collapse (sum) rest_exp, by(newid)

有一点需要注意,inlist()对字符串有9个可能值的约束,但你可能少于或destring,在这种情况下,限制为254.你也可以搭便车少数inlist()|