合并两个stat(sum)代码

时间:2014-11-08 14:30:01

标签: stata

我已经获得了一个项目列表,这些项目总共产生零收入(一段时间内的总收入)

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

1 个答案:

答案 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)

如果您有遗失或负收入,则需要进行修改。