楼主: wyy19860530
2337 0

[其他] 如何提取gen语句产生变量的值进行运算? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

7%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
892 点
帖子
59
精华
0
在线时间
164 小时
注册时间
2007-4-18
最后登录
2018-12-19

楼主
wyy19860530 在职认证  发表于 2009-10-6 09:52:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有如下的stata程序
* 产生mw_frst90_y_ky在各个区间上的值
gen mw_frst90_y_ky_1 = 3.35
gen mw_frst90_y_ky_2 = 3.61
gen mw_frst90_y_ky_3 = 9999

* 产生mw_frst90_y_ky的各个区间点
gen mw_frst90_y_ky_year_begin_1 = 1990
gen mw_frst90_y_ky_year_end_1 = 1991
gen mw_frst90_y_ky_year_begin_2 = 1991
gen mw_frst90_y_ky_year_end_2 = 1993
gen mw_frst90_y_ky_year_begin_3 = 1993
gen mw_frst90_y_ky_year_end_3 = 2010
gen mw_frst90_y_ky_month_begin_1 = 7
gen mw_frst90_y_ky_month_end_1 = 6
gen mw_frst90_y_ky_month_begin_2 = 7
gen mw_frst90_y_ky_month_end_2 = 3
gen mw_frst90_y_ky_month_begin_3 = 4
gen mw_frst90_y_ky_month_end_3 = 12

* 赋值过程
forvalues k = 1(1)3 {
local j = `k' + 1
gen

if mw_frst90_y_ky_month_begin_`k' < mw_frst90_y_ky_month_begin_`k'  {
replace mw_frst90_y = mw_frst90_y_ky_`k' if ((year >= mw_frst90_y_ky_year_begin_`k') & (month >= mw_frst90_y_ky_month_begin_`k')) & ((year <= mw_frst90_y_ky_year_end_`k') & (month <= mw_frst90_y_ky_month_end_`k')) & (st_id == 27)
}

if mw_frst90_y_ky_month_begin_`k'> mw_frst90_y_ky_month_begin_`k'  {
replace mw_frst90_y = mw_frst90_y_ky_`k' if ((year >= mw_frst90_y_ky_year_begin_`k') & (month >= mw_frst90_y_ky_month_begin_`k')) & ((year <= mw_frst90_y_ky_year_begin_`k') & (month <= 12)) & (st_id == 27)

replace mw_frst90_y = mw_frst90_y_ky_`k' if ((year >= mw_frst90_y_ky_year_end_`k') & (month >= 1) & ((year <=
mw_frst90_y_ky_year_end_`k') & (month <= mw_frst90_y_ky_month_end_`k')) & (st_id == 27)

replace mw_frst90_y = mw_frst90_y_ky_`k' if ((year >= mw_frst90_y_ky_year_begin_`j') & (month >= 1)) & ((year <=
mw_frst90_y_ky_year_end_`') & (month <= 12))
}

现在主要的问题是最后一个语句, 我想把mw_frst90_y_ky_year_end_`k' 那个变量的值,比如说1991提取出来,然后将这个值减去1,这样把1990年7月到1991年6月这个时间段分成三段处理: 1990年7月到12月,1991年1月到6月,还有1991年1月到1990年12月(其实这个时间段为空,但是为了一般意义的作用,因为时间段可能超过1年),问题是这个是不是要将gen 产生的变量的形式转化成为可计算的形式呢?就是这个1991年1月到1990年12月这个如何在if语句中用一般的形式表达出来呢?这个程序应该如何修改让其能达到我的目的啊?希望高手们多多帮助,谢谢
二维码

扫码加我 拉你入群

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

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

关键词:如何提取 forvalues forvalue stata程序 replace 如何 程序

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-6 04:10