楼主: kakakarine
1211 5

[编程问题求助] STATA 根据现有多个变量创建有多值的新变量 [推广有奖]

  • 0关注
  • 0粉丝

小学生

78%

还不是VIP/贵宾

-

威望
0
论坛币
882 个
通用积分
0.0203
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
89 点
帖子
6
精华
0
在线时间
6 小时
注册时间
2019-6-5
最后登录
2023-1-18

100论坛币
现有变量Var1,Var2 ,Var3 ,Var4; 想要创建新变量Var_New:
如果Var1=1 & Var2=1 & Var3=1 & Var 4=1; 那么Var_New=1
如果Var1=2 & Var2=2 & Var3=2 & Var4=2; 那么 Var_New=2
如果Var1=1 & Var2=2 & Var3=1& Var4=2; 那么 Var_New=3

本小白试着写的码:
Gen Var_New=1 if Var1==1 & Var2==1 & Var3==1 & Var 4==1
Gen Var_New=2 if Var1==2 & Var2==2 & Var3==2 & Var 4==2

但是运行第二行Var_New=2的码时,日志显示Var_New已经被定义,所以想在这里请教如何根据已有的多个变量创建有多个值的新变量,谢谢!


关键词:Stata 多个变量 tata 新变量 VaR
沙发
蓝色 发表于 2023-1-17 10:05:01 |只看作者 |坛友微信交流群
第二次以后都是replace

使用道具

藤椅
kakakarine 发表于 2023-1-18 02:36:07 |只看作者 |坛友微信交流群
已经解决啦!

Gen Var_New=.

replace Var_New=1 if Var1==1 & Var2==1
replace Var_New=2 if Var1==2 & Var2==2
...

使用道具

板凳
kakakarine 发表于 2023-1-18 02:37:01 |只看作者 |坛友微信交流群
蓝色 发表于 2023-1-17 10:05
第二次以后都是replace
对的,不过一开始的gen要写成 Gen Var_New=.

使用道具

报纸
fugangxx 在职认证  发表于 2023-1-18 14:54:50 |只看作者 |坛友微信交流群
egen aa = diff(Var1 Var2 Var3  Var4)
当以上4个变量均相等时,aa = 0
gen Var_New=.
然后replace  Var_New = Var1 if  aa == 0

使用道具

gen Var_New=1 if Var1==1 & Var2==1 & Var3==1 & Var 4==1
replace Var_New=2 if Var1==2 & Var2==2 & Var3==2 & Var 4==2
replace Var_New=3 if Var1==1 & Var2==2 & Var3==1 & Var 4==2

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-30 00:06