全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3036 4
2021-07-19
input double(fq6 fq6_est fr2 fr2_est)
260   -8   -8 -8
  30   -8   -8 -8
  10   -8   -8 -8
  32   -8   -8 -8
320   -8  250 -8
120   -8   -8 -8
   4   -8   -8 -8
  -1 37.5   60 -8
   6   -8   -8 -8
  90   -8   -8 -8
110   -8   -1 50
   8   -8   -8 -8
  50   -8   -8 -8
1000   -8   -8 -8
  -1   50   -8 -8
  60   -8   -8 -8
200   -8   -8 -8
500   -8   -1 50
204   -8   -8 -8
240   -8   -8 -8
400   -8  300 -8
400   -8   -8 -8
1200   -8   60 -8
  -1   -8   -8 -8
  -1   50   -8 -8
200   -8   -8 -8
200   -8   -8 -8
1300   -8   -8 -8
200   -8   -8 -8
  -1 17.5   -8 -8
  90   -8   -1 50
300   -8   -8 -8
  -1   50   -8 -8
800   -8   -8 -8
150   -8   -8 -8
  -1   -8   -8 -8
300   -8  100 -8
400   -8  800 -8
  -1   50   -1 50
800   -8 1700 -8
  -1   50   -8 -8
350   -8   -8 -8
600   -8  200 -8
350   -8  350 -8
500   -8   -8 -8
200   -8   -8 -8
430   -8   -8 -8
200   -8  100 -8
  -1   50   -8 -8
  -1   50  300 -8
end
label values fq6 fq6
label def fq6 -1 "不知道", modify
label values fq6_est fq6_est
label def fq6_est -8 "不适用", modify
label values fr2 fr2
label def fr2 -8 "不适用", modify
label def fr2 -1 "不知道", modify
label values fr2_est fr2_est
label def fr2_est -8 "不适用", modify
[/CODE]
在数据里面,fq6,fq6_est,fr2,fr2_est四个进行相加,“-8”代表不适用,“-1”代表不知道。现在我希望如果将四列数据相加,如果四列全是“-8”,则结果输出为“不适用”;若四列全是“-1”,则输出结果为“不知道”;若四列同时含有“-8”、“-1”,并且只有“-8”、“-1”时,则输出为“不适用”;但倘若任一一列有正的数据,例如fq6是60,其它三列即使是“-8”“-1”,结果只输出为60。
非常感谢您的回答。

二维码

扫码加我 拉你入群

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

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

全部回复
2021-7-19 19:04:52
硬凑了一下 (抛转引玉),看看能否使用?
复制代码
二维码

扫码加我 拉你入群

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

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

2021-7-19 22:12:08
foreach v of varlist fq6 fq6_est fr2 fr2_est{                                             
        decode `v',gen(`v'd)
}  //创建字符串,不懂这一步
label drop fq6 fq6_est fr2 fr2_est
mvdecode fq6 fq6_est fr2 fr2_est, mv(-1 -8) //把-1~-8转换为缺失值
egen tem = rowtotal(fq6 fq6_est fr2 fr2_est) //跳过缺失值,将几者相加
gen wanted = string(tem) //定义为字符串形式
replace wanted = "不知道" if tem == 0 & fq6d == "不知道" & fq6_est == "不知道" & fr2  == "不知道" & fr2_est  == "不知道"
 type mismatch您好,我输入命令最后一步出不了结果,我没发现问题,不知道怎么解决。

我还有一个疑问。今天下午我查看数据,几万个中只有不到50个值为0,其它为缺失值、正数(>0)以及“不知道”“不适用”,因为“不知道”“不适用”的值标签都是负数(-1,-8),于是我定义小于0为“0”,replace fq6_est =0 if fq6_est<0 ;replace fq6=0 if fq6<0;replace fr2_est=0 if fr2_est<0;replace fr2=0 if fr2<0;egen houseasset_gross = rowtotal( fr2 fr2_est fq6 fq6_est );这些数相加只能为缺失值,0(含极少数原来就为0的数)和正数,最后我把“0”全部作为不适用(因为我认为这个数据指代的是房屋价值,如果为负数,那肯定不适用,这里我放弃了极少数房价为0的样本)。不知道处理stata数据是否可以这样做。非常感谢您下午的回复,我有点不太会描述问题,麻烦您了,谢谢您。
二维码

扫码加我 拉你入群

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

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

2021-7-20 10:21:30
Yullan 发表于 2021-7-19 22:12
foreach v of varlist fq6 fq6_est fr2 fr2_est{                                             
        ...
我看不太懂你的问题 (尔后请用回覆)。
二维码

扫码加我 拉你入群

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

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

2021-7-20 21:30:33
黃河泉 发表于 2021-7-20 10:21
我看不太懂你的问题 (尔后请用回覆)。
老师不好意思,感谢您的回复。我想我对自己想问的问题不够了解,我再回去好好思考一下我想问的。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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