簡體   English   中英

使用日期范圍 - 在面板中創建一個標志

[英]Working with date ranges - creating a flag in panel

我有兩個數據集:

  1. 面板 - 從 2010 年到 2020 年
  2. 每個公司(一個或多個)在獲得貸款時的范圍 - 該范圍還表示貸款期限

首先可以是這樣的(每個公司都有所有的年度觀察記錄):

   id  year
   1   2010
   1   ...
   1   2020
   2   2010
   2   ...
   2   2020

第二個可以是這樣的(所以各種各樣,一家公司可以有所有年的貸款,在開始和結束時都有一些差距):

   id start end
   1  2010  2011
   1  2011  2014
   1  2017  2018
   1  2012  2020
   2  2014  2018
   3  2011  2012
   3  2015  2018
   3  2018  2020
   4  2011  2012
   4  2015  2018
   4  2010  2018

想法是將兩者merge ,因此每家公司在一年中得到 0 或 1,如果當年有貸款(因此任何范圍匹配)則為 1,如果公司當年沒有貸款則為 0。

基於以上內容的示例公司如下所示:

   id  year  flag
   3   2010    0
   3   2011    1
   3   2012    1
   3   2013    0
   3   2014    0
   3   2015    1
   3   2016    1
   3   2017    1
   3   2018    1
   3   2019    1
   3   2020    1

希望這是有道理的。 我嘗試inrange()但有太多不同的場景,我的代碼變得混亂,認為有一種簡單干凈的方法可以做到這一點。

如果您處理第二個數據集,則可以獲得merge與主數據集合並的內容。

clear 
input id start end
1  2010  2011
1  2011  2014
1  2017  2018
1  2012  2020
2  2014  2018
3  2011  2012
3  2015  2018
3  2018  2020
4  2011  2012
4  2015  2018
end 

gen long ID = _n 
gen toexpand = end - start + 1
expand toexpand 
bysort ID : gen year = start + _n - 1 
drop start end ID toexpand 
duplicates drop id year, force 
sort id year 
list, sepby(id)

    +-----------+
     | id   year |
     |-----------|
  1. |  1   2010 |
  2. |  1   2011 |
  3. |  1   2012 |
  4. |  1   2013 |
  5. |  1   2014 |
  6. |  1   2015 |
  7. |  1   2016 |
  8. |  1   2017 |
  9. |  1   2018 |
 10. |  1   2019 |
 11. |  1   2020 |
     |-----------|
 12. |  2   2014 |
 13. |  2   2015 |
 14. |  2   2016 |
 15. |  2   2017 |
 16. |  2   2018 |
     |-----------|
 17. |  3   2011 |
 18. |  3   2012 |
 19. |  3   2015 |
 20. |  3   2016 |
 21. |  3   2017 |
 22. |  3   2018 |
 23. |  3   2019 |
 24. |  3   2020 |
     |-----------|
 25. |  4   2011 |
 26. |  4   2012 |
 27. |  4   2015 |
 28. |  4   2016 |
 29. |  4   2017 |
 30. |  4   2018 |
     +-----------+

merge 1:1 id year之后是

gen flag = _merge == 3 
``` 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM