对于50个不同的州,我有一个超过三年的面板数据集87 90 93。对于我感兴趣的变量exec
,我想删除state
中每个年份exec == 0
的所有条目,并且只有在每年中它等于零时。
我一直在尝试编写某种for循环,但到目前为止还没有成功。
答案 0 :(得分:2)
不需要循环。不需要额外的变量。
bysort state (exec) : drop if exec[1] == 0 & exec[_N] == 0
当且仅当drop
的所有值均为0时,才会对state
进行exec
观察。
答案 1 :(得分:0)
这样的事情会起作用,假设exec不能为负:
webuse airacc
bysort airline (time): egen tot = total(inprog)
drop if tot==0
这将使航空公司的每个州的inprog时间总和为零,将缺失视为零。
egen
和egenmore
可以帮助您避免陷入困境。