我有一个看起来像这样的数据集(当然要大得多,一个单元格中最多有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
函数的内容?
答案 0 :(得分:3)
使用split
,reshape
和fillin
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 |
+---------------------+