上一次提到如何使用Stata社区命令xtpattern和Stata自身函数实现如何识别至少连续几年的变量数据的样本,实际工作中有可能还存在其他情况,如有可能你不需要至少连续3次的数据,你需要且仅需要连续3次的数据,该怎么办呢?
演示数据如下:
//读取演示数据
clear
input id year Lian
1 2020 11.11
1 2021 22.22
1 2022 33.33
2 2020 9.88
2 2021 8.99
2 2022 9.99
3 2020 7.77
3 2022 8.88
4 2021 8.88
4 2022 9.99
5 2019 1.22
5 2020 2.33
5 2021 3.44
5 2022 4.55
6 2019 1.23
6 2020 2.45
6 2021 3.67
end
xtset id year
//安装Stata社区命令xtpattern
ssc install xtpattern,replace
xtpattern, gen(wanted1)
可以采用一种变通的方法,可以先删除至少连续4年的,再保留至少连续3年的即可。
采用Stata的strmatch函数实现的代码如下:
drop if strmatch(wanted1, "*1111*")
keep if strmatch(wanted1, "*111*")
采用Stata的strpos函数实现的代码如下:
keep if strpos(wanted1, "1111") == 0
drop if strpos(wanted1, "111") == 0
思考题:如果我们只想保留仅3年或至少3年的记录(连续不连续无所谓)该怎么办呢?
完,本文内容交流请移步:http://www.epiman.cn/thread-153088-1-1.html