楼主: 792806260
1924 5

[编程问题求助] stata中对于while循环的疑问,求大神 [推广有奖]

  • 1关注
  • 0粉丝

硕士生

93%

还不是VIP/贵宾

-

威望
0
论坛币
7920 个
通用积分
9.9423
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3357 点
帖子
115
精华
0
在线时间
157 小时
注册时间
2020-9-5
最后登录
2024-5-30

楼主
792806260 学生认证  发表于 2022-3-26 20:49:37 |AI写论文
100论坛币
我在使用class数据时,遇到一个多选的问题,尝试通过以下代码(在二楼),尝试通过while嵌套减少步骤,但是stata会报错没有生成live2,请问这是为什么呢?stata新手,求教了
  1. use "D:\CLASS\append_data\append_data.dta", clear
复制代码


最佳答案

关键词:Stata while tata Hil stata新手

沙发
317792209 在职认证  学生认证  发表于 2022-3-26 20:49:38
while `i' <= 15,这里不能用<=这种形式。恰好自己编命令时犯过该错误。

藤椅
792806260 学生认证  发表于 2022-3-26 20:50:27
  1. use "D:\CLASS\append_data\append_data.dta", clear

  2. rename (a10210 a10211 a10212 a10213 a10214 a10215) ///
  3.                 (a102010 a102011 a102012 a102013 a102014 a102015)


  4. local i 1
  5. local n 2
  6. local m 2
  7. while `i' <= 15{
  8.         gen live`i' = 1 if a1020`i'==1
  9.                 while `i' == 1{
  10.                         replace live`i'= 0 if a10202/a102015==1
  11.                         local i=`i'+1
  12.                 }
  13.                 while `i' == 2{
  14.                         replace live`i'=0 if (a10201==1)&(a10203/a102015==1)
  15.                         local i=`i'+1
  16.                 }
  17.                 while `i' == 3/14{
  18.                         local `n' = `i'-1
  19.                         local `m' = `i'+1
  20.                         replace live`i'=0 if (a10201/a1020`n'==1)&(a1020`m'/a102015==1)
  21.                         local i=`i'+1
  22.                 }
  23.                 while `i' == 15{
  24.                         replace live`i'= 0 if a10201/a102014==1
  25.                         local i=`i'+1
  26.                 }
  27.         }
复制代码

板凳
pengxhan 发表于 2022-3-26 21:55:40
直接说你要干什么?

报纸
792806260 学生认证  发表于 2022-3-27 15:08:12
pengxhan 发表于 2022-3-26 21:55
直接说你要干什么?
老师,就是我想把那些在这个多选问题中只选了一个选项的人识别出来,并且知道他选了那个选项,同时尽量减少步骤

地板
pengxhan 发表于 2022-3-27 20:48:09
那就给出部分典型数据 用dataex

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-21 21:52