Stata:在一个单元格中创建多个字符串条目的虚拟对象

时间:2015-09-02 16:26:06

标签: string stata

我有一个看起来像这样的数据集(当然要大得多,一个单元格中最多有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函数的内容?

1 个答案:

答案 0 :(得分:3)

使用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 |
     +---------------------+