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数据是否可以这样做。非常感谢您下午的回复,我有点不太会描述问题,麻烦您了,谢谢您。