全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
8141 13
2021-01-14
像下文提供的数据一样,db010-db015分别可以取1-4四个取值,现在想根据不同的取值重新给变量赋值,比如如果db010=1,则重新赋值db010=0,如果db010=2,则重新赋值db010=1,如果db010=3,则重新赋值db010=2,如果db010=3,则重新赋值db010=3。本来想用类似replace db010=0 if db010=1来一个个替换,但是发现很繁琐。所以希望论坛的各位大佬帮帮忙,看看怎样编程会比较快。谢谢大家了!
input byte(db010 db011 db012 db013 db014 db015)
. . . . . .
. . . . . .
1 1 1 1 1 1
. . . . . .
. . . . . .
. . . . . .
. . . . . .
1 1 1 1 1 1
. . . . . .
2 4 2 3 2 2
1 1 1 1 1 1
1 1 1 1 2 1
1 1 1 1 1 1
. . . . . .
. . . . . .
. . . . . .
1 1 1 1 1 1
. . . . . .
1 1 1 1 2 1
. . . . . .
. . . . . .
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
. . . . . .
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
1 1 1 1 1 1
. . . . . .
. . . . . .
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
1 3 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
. . . . . .
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
1 2 1 1 2 1
1 1 1 1 2 1
. . . . . .
. . . . . .
2 2 1 1 2 1
1 2 1 2 2 1
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 2 1
1 1 1 1 1 1
2 3 3 2 2 2
. . . . . .
. . . . . .
. . . . . .
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
1 1 1 1 1 1
1 1 1 1 1 1
. . . . . .
. . . . . .
. . . . . .
. . . . . .
1 1 1 1 1 1
1 1 1 1 2 1
. . . . . .
1 2 1 1 1 1
2 2 1 2 2 1
1 1 1 1 1 1
. . . . . .
1 1 1 1 1 1
2 2 2 1 2 1
2 2 1 2 2 1


二维码

扫码加我 拉你入群

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

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

全部回复
2021-1-14 21:10:40
不知道繁琐在哪?多打几行代码不比在论坛等回复快?运行也多不了几秒
二维码

扫码加我 拉你入群

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

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

2021-1-14 21:13:56
replace db010=0 if db010==1
replace db010=1 if db010==2
replace db010=2 if db010==3
replace db010=3 if db010==4

replace db011=0 if db011==1
replace db011=1 if db011==2
replace db011=2 if db011==3
replace db011=3 if db011==4

replace db012=0 if db012==1
replace db012=1 if db012==2
replace db012=2 if db012==3
replace db012=3 if db012==4

replace db013=0 if db013==1
replace db013=1 if db013==2
replace db013=2 if db013==3
replace db013=3 if db013==4

replace db014=0 if db014==1
replace db014=1 if db014==2
replace db014=2 if db014==3
replace db014=3 if db014==4

replace db015=0 if db015==1
replace db015=1 if db015==2
replace db015=2 if db015==3
replace db015=3 if db015==4
二维码

扫码加我 拉你入群

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

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

2021-1-15 01:28:02
你要的是不是这个:
复制代码

另外你说的:“如果db010=3,则重新赋值db010=2,如果db010=3,则重新赋值db010=3”是个什么意思,3变为2,3变为3,下次提问,请把问题搞清楚。
二维码

扫码加我 拉你入群

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

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

2021-1-15 08:45:30
你若要问程序,请用 (ssc install) dataex 附上相关`代表性’资料 (请尽量不要用截图或其他格式)。请参考说明 https://bbs.pinggu.org/thread-5048204-1-1.htmlhttps://zhuanlan.zhihu.com/p/29911577
二维码

扫码加我 拉你入群

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

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

2021-1-15 14:16:25
zdlspace 发表于 2021-1-15 01:28
你要的是不是这个:

另外你说的:“如果db010=3,则重新赋值db010=2,如果db010=3,则重新赋值db010=3”是 ...
不好意思,是口误了。其实重新赋值是想把原来的选择项变为相应的得分。实际上是这样的,db010=1,2,3,4代表了不同的情况,具体地,1代表没有困难,2代表有困难但仍可以完成,3代表有困难,需要帮助,4代表无法完成。现在要根据不同的情况进行打分,如果是1,则0分,2则为1分,3则为2分,4则为3分。
主要是现在有大概12个不同的变量,但是涉及到的选项都是一模一样的,所以是不是可以写循环语句,一次性做出来结果呢?
谢谢您的回答!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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