楼主: nanziSophia
3061 17

[编程问题求助] 循环语句嵌套条件语句,为何条件语句没有被执行呢? [推广有奖]

11
austen06 发表于 2016-12-5 03:41:43
夏目贵志 发表于 2016-12-5 01:46
你先看一下help if和help ifcmd的区别。最好能说清楚你想对数据做什么,然后再来看用什么办法最好。数据也 ...
我同意你先要明确你的目的,很多操作并不用手动循环所有的observations,比如以一定的条件从一变量创建另一新变量,你只需在gen后加上if就可以了。

12
nanziSophia 学生认证  发表于 2016-12-5 12:13:16
夏目贵志 发表于 2016-12-5 01:46
你先看一下help if和help ifcmd的区别。最好能说清楚你想对数据做什么,然后再来看用什么办法最好。数据也 ...
第一个是stata的调查问卷,第二个第三个是stata数据,我将他们合并之后,
通过与户主的关系relationship以及性别sex对他们进行分类
分为父亲的信息 母亲的信息 子代的信息
通过循环语句嵌套条件语句来实现

UHIP1999-家户数据.dta
下载链接: https://bbs.pinggu.org/a-2149612.html

1.76 MB

stata家户数据

UHIP1999-个人数据.dta

6.9 MB

stata个人数据

UHIP-1999-MAIN QUESTIONNAIRE-CHINESE.pdf

556.67 KB

1999年CHIP调查问卷

13
夏目贵志 发表于 2016-12-6 01:10:24
nanziSophia 发表于 2016-12-5 12:13
第一个是stata的调查问卷,第二个第三个是stata数据,我将他们合并之后,
通过与户主的关系relationship ...
你说的“分类”是什么意思?要求出什么结果?比如,你是要建立新变量还是把数据拆成几个单独的文件还是怎么样?

14
南子22 发表于 2016-12-6 08:23:11 来自手机
夏目贵志 发表于 2016-12-6 01:10
你说的“分类”是什么意思?要求出什么结果?比如,你是要建立新变量还是把数据拆成几个单独的文件还是怎 ...
先把个人数据和家户数据合并,然后在合并基础上,进行子代和父代信息的分类

昨晚我弄了一下,发现tab命令执行后,relationship的值可以为1 2 3,但是条件语句只执行relationship=3

15
夏目贵志 发表于 2016-12-6 09:57:24
南子22 发表于 2016-12-6 08:23
先把个人数据和家户数据合并,然后在合并基础上,进行子代和父代信息的分类

昨晚我弄了一下,发现tab命令 ...
....你还是没有说你究竟要怎么“分类”啊。你一开始的程序,就算所有的if都能正确运行,也只是定义一些local macro,并不会改变你数据的内容,也不知道你要用这些macro干什么。你不说清楚你究竟要干什么,我是无法帮助你的。也许你自己心里明白你说的“分类”是什么意思。但是别人不一定明白。或者,就是我笨,搞不明白你究竟要干什么。

16
南子22 发表于 2016-12-6 11:09:24 来自手机
夏目贵志 发表于 2016-12-6 09:57
....你还是没有说你究竟要怎么“分类”啊。你一开始的程序,就算所有的if都能正确运行,也只是定义一些lo ...
通过调查问卷中
与户主的关系 relationship   以及
性别 sex
来区分子代和父代(父亲 母亲)的信息

这种分类  

我应该说清楚了吧?

实在不清楚,你下载我在上面上传的调查问卷,一看便知

抱歉,语言表述不清,勿怪啊

17
南子22 发表于 2016-12-6 12:30:51 来自手机
南子22 发表于 2016-12-6 11:09
通过调查问卷中
与户主的关系 relationship   以及
性别 sex
搞出来了,原来我最开始弄的是对的,当时不知道为什么把这些东西注释掉了
你一开始说觉得我那个注释长是对的,不知道为什么软件提醒我语法有错误

我在想,我这出错的原因在于没有将i加入if语句里面,而list relationship显示的第一个值恰好是3,也就是子代的信息,所以软件只会认为relationship=3是对的,循环执行这条relationship=3的语句

总之,还是谢谢你

18
夏目贵志 发表于 2016-12-7 07:10:34
南子22 发表于 2016-12-6 12:30
搞出来了,原来我最开始弄的是对的,当时不知道为什么把这些东西注释掉了
你一开始说觉得我那个注释长是对 ...
主要是stata里的“if”其实是有两种不一样的。其实依赖于数据sort order的程序并不是很推荐。因为sort是有一定随机性的。除非你能确定你的程序每次执行sort的顺序都是一样的,否则你的程序可能会生成难以预测的结果。不过问题解决了就好~恭喜~

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 17:14