在另一个值中创建有条件值的变量



我的冲突数据集(7100万个观察结果(,具有许多变量和日期(每日(。

这是来自GDELT项目的数据集的结构方式,即每天都有一个目标国家和一个侵略性国家。也就是说,2000年1月1日,许多国家从事对他人或自己的侵略性行为,该数据集对此进行了跟踪。

看起来像这样:

clear
input long date_01 str18 source_01 str19 target_01 str4 cameocode_01
20000101 "AFG"    "AFGGOV" "020" 
20000101 "AFG"    "AFGGOV" "0841"
20000101 "AFG"    "ARE"    "036" 
20000101 "AFG"    "CVL"    "043" 
20000101 "AFG"    "GOV"    "010" 
20000101 "AFG"    "GOV"    "043" 
20000101 "AFGGOV" "kasUAF" "0353"
20000101 "AFGGOV" "kasUAF" "084" 
20000101 "AFG"    "IGOUNO" "030" 
20000101 "AFG"    "IND"    "042" 
20000101 "AFG"    "IND"    "043" 
end

我想做的就是每个国家隔离这些事件。

例如,我想为美国创建一个变量,在每个日期,我都有美国是目标或源代码及其各自的客串代码。我有很多国家,但只需要其中的一部分,我提前知道他们的名字。

您在示例中可以看到,第一个变量是日期,对于这些单元格,该变量始终是2000101,但是在几百个观察结果之后,它将变为2000102,表示一天的变化。

第二个变量source_01是一个攻击另一个国家的国家。在示例中,IND是印度,AFG是阿富汗,其他代码是其他国家。

第三个变量target_01只是冲突的受害者。

最后, cameocode_01是用某种算法测量的冲突强度,以每种语言跟踪新闻。

我所追求的是创建一个新的(每个国家/地区(变量,该变量如果特定国家作为源或目标涉及特定国家,则提取该事件的客串代码。

在此特定示例中,以下是我对印度案例的所需输出(代码IND(,该案例涉及到特定日期的两个事件:

date      INDIAcameo
20000101  "042" 
20000101  "043"

我尝试了以下方法:

replace INDIA cameo=cameocode if "target"  ~ "source" ==IND

但是,它说键入不匹配,我怀疑它是否会给我我想要的东西。

如果您事先知道您感兴趣的国家,那么以下情况将有效:

clear
input long date_01 str18 source_01 str19 target_01 str4 cameocode_01
20000101 "AFG"    "AFGGOV" "020" 
20000101 "AFG"    "IND"    "043"
20000101 "AFG"    "AFGGOV" "0841"
20000101 "AFG"    "ARE"    "036" 
20000101 "AFG"    "CVL"    "043" 
20000101 "AFG"    "GOV"    "010" 
20000101 "AFG"    "GOV"    "043" 
20000101 "AFGGOV" "kasUAF" "0353"
20000101 "AFGGOV" "kasUAF" "084" 
20000101 "AFG"    "IGOUNO" "030" 
20000102 "AFG"    "IND"    "042" 
end
foreach c in AFG IND ARE {
    generate ind_`c' = cameocode_01 if strmatch(source_01, "`c'") |  ///
                                       strmatch(target_01, "`c'")
}

请注意,我已经修改了您的示例以获得更好的插图。

查看结果:

list, sepby(date) abbreviate(15)
     +-------------------------------------------------------------------------------+
     |  date_01   source_01   target_01   cameocode_01   ind_AFG   ind_IND   ind_ARE |
     |-------------------------------------------------------------------------------|
  1. | 20000101         AFG      AFGGOV            020       020                     |
  2. | 20000101         AFG         IND            043       043       043           |
  3. | 20000101         AFG      AFGGOV           0841      0841                     |
  4. | 20000101         AFG         ARE            036       036                 036 |
  5. | 20000101         AFG         CVL            043       043                     |
  6. | 20000101         AFG         GOV            010       010                     |
  7. | 20000101         AFG         GOV            043       043                     |
  8. | 20000101      AFGGOV      kasUAF           0353                               |
  9. | 20000101      AFGGOV      kasUAF            084                               |
 10. | 20000101         AFG      IGOUNO            030       030                     |
     |-------------------------------------------------------------------------------|
 11. | 20000102         AFG         IND            042       042       042           |
     +-------------------------------------------------------------------------------+

foreach v of varlist ind* {
    sort date `v'
    list date `v' if !missing(`v'), sepby(date) abbreviate(15)
}
     +--------------------+
     |  date_01   ind_AFG |
     |--------------------|
  3. | 20000101       010 |
  4. | 20000101       020 |
  5. | 20000101       030 |
  6. | 20000101       036 |
  7. | 20000101       043 |
  8. | 20000101       043 |
  9. | 20000101       043 |
 10. | 20000101      0841 |
     |--------------------|
 11. | 20000102       042 |
     +--------------------+
     +--------------------+
     |  date_01   ind_IND |
     |--------------------|
 10. | 20000101       043 |
     |--------------------|
 11. | 20000102       042 |
     +--------------------+
     +--------------------+
     |  date_01   ind_ARE |
     |--------------------|
 10. | 20000101       036 |
     +--------------------+

最新更新