Как найти, если компания сменила точку присутствия - PullRequest
1 голос
/ 23 июня 2019

У меня есть данные с идентификаторами компании, точками присутствия и странами.

Например:

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 

Может кто-топомогите мне?

1 Ответ

2 голосов
/ 23 июня 2019

У меня работает следующее:

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