全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
6483 9
2013-02-05
求助:我需要对变量a进行分年度winsorize,year取值为2000到2011,a是数值型,year是字符型变量,
使用命令:gen a_win=.

forval i=2000/2011{
winsor a if year==`i', gen(a_`i') P(0.01)
replace a_win=a_`i' if year==`i'
}

为什么总是提示type mismatch呀?

请教哪里错了?谢谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-2-5 23:07:01
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-2-6 00:15:07
gen a_win=.
forv i=2000/2011 {
winsor a if year==`i', gen(a_win`i') p(0.01)
replace a_win=a_win`i' if year==`i'
drop a_win`i'
}
其实能不用循环最好不用,因为循环执行效率低,但是wisnor不能和by使用,所以只能循环了。
代码就是这样,好奇的是楼主为什么要分年度winsor?你这么做最好有依据,我没见过有论文分年度winsor的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-2-6 01:08:51
year是字符型变量
if year=="`i'"

************
bys year: cumul a, eq g(p)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-2-6 14:00:58
xingxf 发表于 2013-2-6 00:15
gen a_win=.
forv i=2000/2011 {
winsor a if year==`i', gen(a_win`i') p(0.01)
谢谢。我这样winsor是有根据的,这个样本有一万,根据相似的论文,是需要分年度winsor的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-2-6 14:17:58
来学习了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群