全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
1949 2
2010-05-04
连老师,您好!我目前数据中a13变量是一个人的教育水平:
a13         0=文盲
               1=小学
               2=中学
               3=专科
               4=大学本科
               5=不回答
我现在想创建新的一个变量a13a, 使有受过高等教育的人(a13=3或4)标为1,其他为0,保留原有a13的缺漏值, 利用cond()函数,但如何保留原有的缺漏值呢?我的命令为:
gen higher_edu = cond(a13==3 | a13==4, 1, 0, . ) 但结果是原有的缺漏值也变为0了,我想保留这757个缺漏值,怎么实施命令呢?


原有变量a13 的codebook结果如下:
--------------------------------------------------------------------------------------------------------------------------------------------
a13                                                                                                                               Edu Level
--------------------------------------------------------------------------------------------------------------------------------------------

                  type:  numeric (byte)

                 range:  [0,5]                        units:  1
         unique values:  6                        missing .:  757/5653

            tabulation:  Freq.  Value
                            10  0
                            70  1
                           717  2
                          2586  3
                          1227  4
                           286  5
                           757  .
二维码

扫码加我 拉你入群

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

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

全部回复
2010-5-4 09:20:51
嗯,经常都是发了帖子之后的几分钟内自己琢磨出应该怎么处理这个问题了。
可行的做法是在后面跟一个replace命令
gen higher_edu = cond(a13==3 | a13==4, 1, 0)
replace higher_hedu=. if a13==.

不过有没有可以直接在cond()函数中保留missing value 的方法呢?
yellowriver 发表于 2010-5-4 09:08
连老师,您好!我目前数据中a13变量是一个人的教育水平:
a13         0=文盲
               1=小学
               2=中学
               3=专科
               4=大学本科
               5=不回答
我现在想创建新的一个变量a13a, 使有受过高等教育的人(a13=3或4)标为1,其他为0,保留原有a13的缺漏值, 利用cond()函数,但如何保留原有的缺漏值呢?我的命令为:
gen higher_edu = cond(a13==3 | a13==4, 1, 0, . ) 但结果是原有的缺漏值也变为0了,我想保留这757个缺漏值,怎么实施命令呢?


原有变量a13 的codebook结果如下:
--------------------------------------------------------------------------------------------------------------------------------------------
a13                                                                                                                               Edu Level
--------------------------------------------------------------------------------------------------------------------------------------------

                  type:  numeric (byte)

                 range:  [0,5]                        units:  1
         unique values:  6                        missing .:  757/5653

            tabulation:  Freq.  Value
                            10  0
                            70  1
                           717  2
                          2586  3
                          1227  4
                           286  5
                           757  .
二维码

扫码加我 拉你入群

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

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

2010-5-4 09:45:39
320
321 *-2.1.2.6 利用条件函数产生虚拟变量
322
323 *- cond() 函数
324
325 * 基本语法:cond(s,a,b) | cond(s,a,b,c)
326 * 取值:
327 * a if 表达式 s 为真;
328 * b if 表达式 s 为假;
329 * c if 表达式 s 为缺漏值
330 * 示例:
331 sysuse nlsw88, clear
332 gen dum1 = cond(hours>40, 1, 0, .)
333 list hours dum1 in 1/20
334 gen dum2 = cond(hours>40&hours!=., 1, 0, .)
335 list hours dum1 dum2 in 1/20 // 注意此处的区别
336
337 gen dum_ratio = cond(wage/hours>0.5, 1, 0)
338 list wage hours dum_ratio in 1/20
339
340
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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