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

Stata: Create a dummy out of multiple string entries in one cell

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

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