String Stata:从一个单元格中的多个字符串项中创建一个虚拟项

String Stata:从一个单元格中的多个字符串项中创建一个虚拟项,string,stata,String,Stata,我有一个看起来像这样的数据集(当然要大得多,一个单元格中最多有5个条目): 我希望它看起来像这样: 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。我正在考虑

我有一个看起来像这样的数据集(当然要大得多,一个单元格中最多有5个条目):

我希望它看起来像这样:

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中的
应用
函数的功能?

使用
拆分
重塑
填充

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