我有包含公司标识符,营业地点和国家/地区的数据。
例如:
clear
input long id int pop str3 country
64435 2344 "USA"
64435 2345 "USA"
64435 2346 "GER"
64435 2347 "GER"
64435 2348 "GER"
64436 2344 "FR"
64436 2345 "FR"
64437 2344 "USA"
64437 2345 "GER"
64437 2346 "GER"
64437 2347 "FR"
64437 2348 "FR"
64437 2349 "USA"
end
我要创建一个变量,该变量将指示公司是否根据国家/地区切换了业务存在点。我也想找出这种情况发生的频率。
请注意,我只想在国家/地区的每次开关中首次找到这些信息。
结果变量应如下所示:
0
.
1
.
.
0
.
0
1
.
2
.
3
有人可以帮我吗?
答案 0 :(得分:2)
以下对我有用:
bysort id (pop): generate result = sum(_n > 1) if country != country[_n-1]
list, separator(0)
+---------------------------------+
| id pop country result |
|---------------------------------|
1. | 64435 2344 USA 0 |
2. | 64435 2345 USA . |
3. | 64435 2346 GER 1 |
4. | 64435 2347 GER . |
5. | 64435 2348 GER . |
6. | 64436 2344 FR 0 |
7. | 64436 2345 FR . |
8. | 64437 2344 USA 0 |
9. | 64437 2345 GER 1 |
10. | 64437 2346 GER . |
11. | 64437 2347 FR 2 |
12. | 64437 2348 FR . |
13. | 64437 2349 USA 3 |
+---------------------------------+