楼主: yellowriver
1451 1

[Stata初级班] 向连老师求教三个课堂中遇到的问题 [推广有奖]

  • 0关注
  • 4粉丝

VIP

博士生

38%

还不是VIP/贵宾

-

威望
0
论坛币
10028 个
通用积分
22.7632
学术水平
21 点
热心指数
26 点
信用等级
19 点
经验
3133 点
帖子
164
精华
0
在线时间
170 小时
注册时间
2007-11-4
最后登录
2019-5-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
1)刚听到第三课,很想知道stata结果窗口的内容如何保存?我有时候就是直接在那个黑屏幕上复制,然后另外粘贴到word保存起来。但如果数据量很多,比如我手头上问卷一有6000多个样本,40多个变量,我用了一些命令后,结果都在stata结果窗那个黑屏幕上,很多很长的结果,有没有什么办法可以把所有黑屏幕上的结果一起保存成一个output文件?
2)创建虚拟变量的方法,连老师介绍了很多,有gen, replace的一般方法,还有tab, xi的简洁方法,还有利用条件函数的方法,这一部分涉及命令太多了。我觉得xi的命令最好用,因为产生的虚拟变量数刚好就是类别-1,但它好像只能用于类别变量,不能用于增设一些条件,比如我想把wage这个变量按不同的水平设虚拟变量。哪种方法最常用呢?并且适合各种虚拟变量的设立呢?


3) 虚拟变量这部分有一个命令: gen dum_ratio = cond(wage/hours, 1, 0, -999)  我不理解wage/hours是什么条件,怎么没有一个>或<或==的约束条件呢?


谢谢老师!
二维码

扫码加我 拉你入群

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

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

关键词:连老师 replace output hours Stata 老师 求教 课堂

沙发
arlionn 在职认证  发表于 2010-1-2 11:02:02 |只看作者 |坛友微信交流群
yellowriver 发表于 2010-1-2 10:20
1)刚听到第三课,很想知道stata结果窗口的内容如何保存?我有时候就是直接在那个黑屏幕上复制,然后另外粘贴到word保存起来。但如果数据量很多,比如我手头上问卷一有6000多个样本,40多个变量,我用了一些命令后,结果都在stata结果窗那个黑屏幕上,很多很长的结果,有没有什么办法可以把所有黑屏幕上的结果一起保存成一个output文件?
A:请使用 log 文件来记录你的分析过程,它可以把屏幕上呈现的所有内容都记录在一个 txt 文档中。A1_intro.do 文件第 757 行:
*-------------------
*->    log 文件
*-------------------
* 记录你的分析过程
************************记录开始************************
  cd D:\stata9\ado\personal\Net_course\A1_intro
  sysuse auto, clear

  *---------mylog1.log---------------
  log using mylog1.log, text replace
   dis "Part I:统计分析"
   sum price weight length
  log close
  *------------over-------------

   tab rep78
   d, d

  *--------mylog2.log----------------
  log using mylog2.log, text replace
   tab rep78 foreign
   d price rep78 foreign, d
  log close
  *------------over-------------
************************记录结束************************


2)创建虚拟变量的方法,连老师介绍了很多,有gen, replace的一般方法,还有tab, xi的简洁方法,还有利用条件函数的方法,这一部分涉及命令太多了。我觉得xi的命令最好用,因为产生的虚拟变量数刚好就是类别-1,但它好像只能用于类别变量,不能用于增设一些条件,比如我想把wage这个变量按不同的水平设虚拟变量。哪种方法最常用呢?并且适合各种虚拟变量的设立呢?
A:之所以介绍这么多种方法,是因为他们各自都有自己的适用环境和条件。若你想把wage按不同的水平设定虚拟变量,建议使用
* 指定分界点的转换方式
sum age
recode age (min/39 = 1) (39/42 = 2) (42/max = 3), gen(g_age)


3) 虚拟变量这部分有一个命令: gen dum_ratio = cond(wage/hours, 1, 0, -999)  我不理解wage/hours是什么条件,怎么没有一个>或
A:cond(s,a,b,c) 这个函数中的 s 表示一个表达式,含义如下:
* cond(s,a,b,c)
   * a  if 表达式 s 为真;
   * b  if 表达式 s 为假;
   * c  if 表达式 s 为缺漏值。

所谓 s 为真,表示s非零,而当s=0时即为假。你可以注意到,cond()函数本身就已经在定义条件了,而这个条件的判断是基于表达式s的取值来进行的。

使用道具

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

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

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

GMT+8, 2024-5-2 23:24