На самом деле, вам нужно только reshape long
один раз.
Затем вы можете просто split
получившуюся (составную) переменную year
и rename
:
reshape long v_, i(id) j(az_year) string
split az_year, generate(var) parse("_")
drop az_year
rename v_ v
rename var1 h
rename var2 year
order id year h v
list, sepby(id)
+------------------------------+
| id year h v |
|------------------------------|
1. | 1 2017 az032 27.48494 |
2. | 1 2018 az032 27.36449 |
3. | 1 2017 az033 27.32459 |
4. | 1 2018 az033 27.32548 |
|------------------------------|
5. | 2 2017 az032 27.67231 |
6. | 2 2018 az032 27.38356 |
7. | 2 2017 az033 27.32464 |
8. | 2 2018 az033 27.32593 |
|------------------------------|
9. | 3 2017 az032 27.32594 |
10. | 3 2018 az032 27.33411 |
11. | 3 2017 az033 27.32939 |
12. | 3 2018 az033 27.32985 |
|------------------------------|
13. | 4 2017 az032 27.53663 |
14. | 4 2018 az032 27.3705 |
15. | 4 2017 az033 27.32457 |
16. | 4 2018 az033 27.33671 |
|------------------------------|
17. | 5 2017 az032 27.32849 |
18. | 5 2018 az032 27.33555 |
19. | 5 2017 az033 27.32504 |
20. | 5 2018 az033 27.33038 |
+------------------------------+