Stata如何识别至少连续几年的变量数据的样本?

有时候数据分析需要保留某个变量至少有连续几年观察值的记录,英国杜伦大学(University of Durham)的Nicholas J. Cox在2002年开发了一款Stata社区命令xtpattern,可以轻松实现该需求。

演示例子:如何保留至少连续三年有测量数据的记录?

//读取演示数据
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)

第一种方式,可使用strmatch函数,代码如下:


keep if strmatch(wanted1, "*111*")

第二种方式,strpos函数也可以,代码如下:


drop if strpos(wanted1, "111") == 0

两种解决方式分别生成变量,体会一下函数的妙用:


gen match=strmatch(wanted1, "*111*")
gen pos=strpos(wanted1, "111")

思考题:如果我们只想保留连续3年的记录(4年及以上的不要)该怎么办呢?

完,本文内容交流请移步:http://www.epiman.cn/thread-153087-1-1.html