全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3603 8
2014-11-07
如题,有些变量是数值型,大部分有value label,其中77的value label为NA,99的value label为DK。另外一些变量为字符串型。我想用一个loop来解决问题,但是因为没有排除字符串型变量,出现了错误:
foreach v of var * {
        replace `v'=. if `v'==77| `v'==99
}

type mismatch
r(109);

请问怎么样能有value label的变量单独挑出来执行转变操作?也就是说,我需要在if语句中加一个条件来鉴别v是包含value label的。
或者有什么其他更好的办法?
非常感谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-11-7 09:35:40
复制代码
二维码

扫码加我 拉你入群

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

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

2014-11-7 09:47:04
ywh19860616 发表于 2014-11-7 09:35
但是label很重要,我不能drop
二维码

扫码加我 拉你入群

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

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

2014-11-7 09:53:14
复制代码

先用label save储存成另一个变量,再drop也可以

还有,从语法上来看,你用的命令是可以的。

比如,
复制代码
二维码

扫码加我 拉你入群

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

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

2014-11-7 10:02:48
ywh19860616 发表于 2014-11-7 09:53
先用label save储存成另一个变量,再drop也可以

还有,从语法上来看,你用的命令是可以的。
谢谢指点。我还是没有看懂你的方法,也许是我没有说清楚问题。我试着再讲一下:
比如说我有100个变量,其中80个变量是数值型的,比如v1,并且都有value label。在他们的value label中77代表NA, 99代表DK。其他20个变量是字符串型的,比如v20,都没有value label。
现在我要把所有observation中这80个变量的77(NA)和99(DK)值都改成.(missing value),一个个太费事,所以我想到用loop来解决,但是出现了错误,原因在于v20等字符型变量跟数值77、99不match。
我的问题是:如何从所有变量中把有value label的单独挑出来?
二维码

扫码加我 拉你入群

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

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

2014-11-7 10:35:14
shetianlang 发表于 2014-11-7 10:02
谢谢指点。我还是没有看懂你的方法,也许是我没有说清楚问题。我试着再讲一下:
比如说我有100个变量,其 ...
复制代码
这样?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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