【问题标题】:Stata: Create a dummy out of multiple string entries in one cellStata:从一个单元格中的多个字符串条目中创建一个虚拟对象
【发布时间】:2015-09-02 16:26:05
【问题描述】:

我有一个如下所示的数据集(当然更大,一个单元格中最多包含 5 个条目):

iso3   variable
GBR    1994
USA    
FRA    1993, 1995

我希望它看起来像这样:

iso3    year    dummy
GBR     1993    0
GBR     1994    1
GBR     1995    0
USA     1993    0
USA     1994    0
USA     1995    0
FRA     1993    1
FRA     1994    0
FRA     1995    1

当然,问题出在FRA。我正在考虑编写一个字符串搜索并循环遍历所有年份以创建一个虚拟对象(如果它找到年份),但我不知道如何将其应用于每个 iso3 类别。

Stata 中是否有类似于 R 中的apply 函数的东西?

【问题讨论】:

    标签: string stata


    【解决方案1】:

    使用splitreshapefillin 的组合

    clear
    input str3 iso3 str20 var
    GBR    "1994"
    USA    
    FRA    "1993, 1995"
    end
    split var, parse(",") destring generate("yr")
    list 
    drop var
    reshape long yr, i(iso3) j(junk)
    generate dummy = 1
    fillin iso3 yr
    replace dummy = 0 if dummy==.
    drop if yr==.
    drop junk _fillin
    list, sepby(iso3)
    

    给我们

         +---------------------+
         | iso3     yr   dummy |
         |---------------------|
      1. |  FRA   1993       1 |
      2. |  FRA   1994       0 |
      3. |  FRA   1995       1 |
         |---------------------|
      4. |  GBR   1993       0 |
      5. |  GBR   1994       1 |
      6. |  GBR   1995       0 |
         |---------------------|
      7. |  USA   1993       0 |
      8. |  USA   1994       0 |
      9. |  USA   1995       0 |
         +---------------------+
    

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多