我已经获得了一个项目列表,这些项目总共产生零收入(一段时间内的总收入)
tabstat revenue, by(project) stat(sum)
我已经确定了261个项目(千分之一),这些项目在整个时间段内产生零收入。
现在,想要查看在这些零收入生成项目中,每个项目可以在多个时间段内跟踪的特定变量的总价值。我知道我可以通过输入
来追踪每个广告系列tabstat variable_of_interest if project==127, stat(sum)
同样,这里项目127产生零收入。
有没有办法合并这两个代码,以便我可以生成一个具有以下逻辑的表
generate total sum of the variable_of_interest if project's stat(sum) was equal to zero
?
这是一个数据样本
project revenue var_of_intr
1 0 5
1 0 8
1 2 10
1 0 5
2 0 5
2 0 90
2 0 2
2 0 0
3 0 76
3 0 5
3 0 23
3 0 4
4 0 75
4 8 2
4 0 9
4 0 6
5 0 88
5 0 20
5 0 9
5 0 14
由于项目1和项目4产生的收入> 0,因此在通过广告系列汇总感兴趣的变量时代码应该忽略,因此,我感兴趣的表应该如下所示
project var_of_intr
2 97
3 108
5 131
答案 0 :(得分:2)
您可以使用collapse
:
clear
set more off
*----- example data -----
input ///
project revenue somevar
1 0 5
1 0 8
1 2 10
1 0 5
2 0 5
2 0 90
2 0 2
2 0 0
3 0 76
3 0 5
3 0 23
3 0 4
4 0 75
4 8 2
4 0 9
4 0 6
5 0 88
5 0 20
5 0 9
5 0 14
end
list
*----- what you want -----
collapse (sum) revenue somevar, by(project)
keep if revenue == 0
当然,这会破坏数据库,但无论如何它都可能有用。你没有真正说明这种方法是否可以接受。
对于表格,您可以标记收益等于零的项目并对其进行条件化:
bysort project (revenue): gen revzero = revenue[_N] == 0
tabstat somevar if revzero, by(project) stat(sum)
如果您有遗失或负收入,则需要进行修改。