我的数据库的基础是暴力事件。我知道这些事件发生在哪个网格单元以及何时发生。对于我的分析,我将某个网格,国家和年份的暴力事件发生频率作为因变量。要创建此频率变量,我collapse
我的暴力事件数据库并计算特定年份中某个网格中暴力事件的数量。
如果在特定年份的某个网格单元中没有暴力事件,我想将值包括为0。但是,由于我基于暴力事件数据库,因此collapse
我的数据时没有这些观察结果。有没有办法为没有暴力事件的年份和网格单元中的观测值创建0值?
在我collapse
日期集之前,它看起来像这样
+--------------------------+
|Country Year Grid_cell_id |
|--------------------------|
|Benin 2012 365 |
|Benin 2012 365 |
|Benin 2012 367 |
|Benin 2014 365 |
|Benin 2014 365 |
|Benin 2014 365 |
|Benin 2015 240 |
|Benin 2015 240 |
|Kenya 2012 430 |
|Kenya 2012 430 |
|Kenya 2013 467 |
|Kenya 2014 567 |
|Kenya 2014 567 |
|Kenya 2014 567 |
+--------------------------+
一旦我collapse
我的数据集,它就会像这样:
+---------------------------------+
|Country Year Grid_cell_id freq |
|---------------------------------|
|Benin 2012 365 2 |
|Benin 2012 367 1 |
|Benin 2014 365 3 |
|Benin 2015 240 2 |
|Kenya 2012 430 2 |
|Kenya 2013 467 1 |
|Kenya 2014 567 3 |
+---------------------------------+
当我使用fillin
创建0频率值时,我仅使用我仅使用grid-cell_id和year,但是我还需要有关grid-cell所在国家/地区的信息。我可以使用fillin
函数轻松进入下面的数据集,但是如何保留国家值而不将其用作fillin
标准。
+---------------------------------+
|Country Year Grid_cell_id freq |
|---------------------------------|
|Benin 2012 365 2 |
|. 2013 365 0 |
|. 2014 365 3 |
|. 2015 365 0 |
|Benin 2012 367 1 |
|. 2012 367 0 |
|. 2013 367 0 |
|. 2014 367 0 |
|. 2015 367 0 |
+---------------------------------+
答案 0 :(得分:0)
在这里,我创建提到的问题,然后使用fillin
解决。参见help fillin
和this paper。
在这种特定情况下,使用zero
的{{1}}选项可以完全避免该问题。实际上,获取频率contract
的数据集通常要优于contract
。
collapse
编辑
您似乎忽略了使用 sysuse auto, clear
(1978 Automobile Data)
. contract foreign rep78
. list, sepby(foreign)
+--------------------------+
| rep78 foreign _freq |
|--------------------------|
1. | 1 Domestic 2 |
2. | 2 Domestic 8 |
3. | 3 Domestic 27 |
4. | 4 Domestic 9 |
5. | 5 Domestic 2 |
6. | . Domestic 4 |
|--------------------------|
7. | 3 Foreign 3 |
8. | 4 Foreign 9 |
9. | 5 Foreign 9 |
10. | . Foreign 1 |
+--------------------------+
. fillin foreign rep78
. list, sepby(foreign)
+------------------------------------+
| rep78 foreign _freq _fillin |
|------------------------------------|
1. | 1 Domestic 2 0 |
2. | 2 Domestic 8 0 |
3. | 3 Domestic 27 0 |
4. | 4 Domestic 9 0 |
5. | 5 Domestic 2 0 |
6. | . Domestic 4 0 |
|------------------------------------|
7. | 1 Foreign . 1 |
8. | 2 Foreign . 1 |
9. | 3 Foreign 3 0 |
10. | 4 Foreign 9 0 |
11. | 5 Foreign 9 0 |
12. | . Foreign 1 0 |
+------------------------------------+
. replace _freq = 0 if _fillin
(2 real changes made)
. drop _fillin
. list, sepby(foreign)
+--------------------------+
| rep78 foreign _freq |
|--------------------------|
1. | 1 Domestic 2 |
2. | 2 Domestic 8 |
3. | 3 Domestic 27 |
4. | 4 Domestic 9 |
5. | 5 Domestic 2 |
6. | . Domestic 4 |
|--------------------------|
7. | 1 Foreign 0 |
8. | 2 Foreign 0 |
9. | 3 Foreign 3 |
10. | 4 Foreign 9 |
11. | 5 Foreign 9 |
12. | . Foreign 1 |
+--------------------------+
的建议,该建议会自动添加频率为零的观测值。
否则,请注意Stata标签Wiki中有关显示数据示例的详细建议,并考虑使用contract, zero
组合标识符和年份的这种变化。对于任何长期数据集,假设网格单元仍在同一国家/地区,而这不是假定,则是不明智的。
egen