统计211

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3167|回复: 0
打印 上一主题 下一主题

Stata教程:数据输入,存盘和调用文件命令以及数据管理命令

[复制链接]
跳转到指定楼层
1
发表于 2011-6-28 22:14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       第一章数据输入,存盘和调用文件命令以及数据管理命令
  本节 STATA命令摘要[[1]]
  输入数据命令:
  1)input
  变量名1变量名2…变量名m
  (各变量数据之间用空格隔开,每行一个记录,最后以 end 表示结束)
  2)infile 变量名1
  变量名2 …
  变量名m using
  文件名
  (该文件为文本文件,各变量数据之间用空格隔开,每行一个记录)
  存盘命令:
  save [路径]文件名[,replace]
  (以STATA格式存盘,缺省扩展名为dta,replace表示覆盖同名同路径的文件;也可以在菜单File中选SAVEas或SAVE进行操作)
  outfile
  using [路径]文件名[,replace]
  (以文本格式存盘,缺省扩展名为raw,replace表示覆盖同名同路径的文件)
  调用已存的STATA格式文件
  use
  [路径]文件名[,clear]
  (也可以在菜单File中选open进行操作)
  产生新变量
  gen
  新变量名=表达式
  修改变量 值
  replace 变量名=表达式 [in 范围][if
  逻辑表达式]
  (变量的缺省值(miningdata)表达式为 .
  )
  在STATA软件中数据输入通常有三种方式:键盘直接输入,从外部的文本文件(ASC码文件) 读入数据和在DOS环境下应用Transfer软件直接把Fox或其他格式存盘的文件转换成Stata软件格式的文件。
  1、键盘输入方式:
  命令格式:
  input
  变量1
  变量2 …
  变量m
  输入数据, 变量之间用空格,每个记录一行
  当数据输完后,输入end
  例:应用克矽平治疗矽肺患者10名,治疗前后血红蛋白的含量如下(数据摘自金丕焕主编<医用统计方法>,pp37):
  血红蛋白含量
  治疗前
  113
  150
  150
  135
  128
  治疗后
  140
  138
  140
  135
  135
  治疗前
  100
  110
  120
  130
  123
  治疗后
  120
  147
  114
  138
  120
  在下列STATA操作中用变量x1和x2分别代表治疗前和治疗后。
  STATA
  数据输入操作命令:
  1.
  键盘直接输入
  input
  x1x2
  113 140
  150 138
  150 140
  135 135
  128 135
  100 120
  110 147
  120 114
  130 138
  123 120
  end
  2. 调用外部文本数据文件
  如果数据已经用其它软件(如:Foxbase)输入,并已以文本格式生成一个文本数据文件,并且满足上述每个记录一行和两个变量之间用空格分割的格式。
  则用STATA命令:
  infile
  变量1变量2… 变量m
  using[路径]文本数据文件名
  如:上例数据已以文本方式存在C:\user 子目录中的文件ex1.txt,并满足每个记录一行和两个变量之间用空格分割的格式,则:
  STATA 命令:
  infile x1x2usingc:\user\ex1.txt
  ·
  以 STATA格式存盘
  save ex1
  以ex1.dta为文件名在当前目录中存盘。
  (因为STATA格式的数据文件的缺省扩展名为.dta)
  如果ex1.dta在当前目录中已存在,并且打算把当前数据所存的文件覆盖当前目录中已存在的文件ex1.dta,则:
  save ex1,replace
  如果打算把ex1.dta文件存入 c:\user子目录中,则
  save c:\user\ex1.dta
  或 savec:\user\ex1.dta,replace
  ·
  以文本方式存数据文件:
  STATA 命令:
  outfile变量1变量2… 变量m
  using路径]文本数据文件名[,replace]
  其中子命令[,replace]表示覆盖现有同目录中与该文本数据文件相同的文件
  设上述资料已在STATA状态下输入到计算机 中,准备生成一个文本数据文件ex1.txt并存入 c:\user,则:
  STATA命令:
  outfilex1x2 usingc:\user\ex1.txt
  若 在c:\user中已经有ex1.txt,并打算用当前STATA环境中的 数据覆盖它。则
  outfilex1x2usingc:\user\ex1.txt,replace
  ·
  调用现有数据文件(以STATA格式存盘的文件,又称STATA 系统数据文件)
  use [路径]文件名[,clear]
  若当前STATA状态已调入数据,则要调入新的数据时,需要用clear子命令,表示清除原先已在计算机中的数据。
  如:调用 在c:\user子目录下的ex1.dtaSTATA系统数据文件,则:
  use
  c:\user\ex1
  若当前状态已有数据在计算机内,则:
  use c:\user\ex1,clear
  注意:use与save是一对调用STATA系统数据文件和以STATA系统格式存盘的命令;infile和outfile也是一对调用外部文本数据文件和以文本文件格式存盘的命令。
  ·数据管理命令
  产生新的变量:STATA命令:
  gen 新变量名=表达式
  例如:当前计算机中正处于STATA状态下,并有二个配对变量 x1和x2的数据,因此需要计算两个变量的差:x1-x2,则:
  genx=x1-x2
  修改 数据:STATA命令:
  replace 变量名= 表达式[if 逻辑表达式][in 范围]
  如: 变量x 中所有值为999的数据是缺省资料,现改为STATA 缺省值的记号,所有大于100的数据将改为2;x 小于或等于100 且大于5的所有数据改为1;x 小于或等于5的所有数据为0。
  则:
  replace
  x=. if x==999
  replace
  x=0if x<=5
  replace
  5&x<=100[2]
  replace
  100
  [1]、方括号
  中的 子命令 表示可以省略,但方括号中的子命令是处理一些特殊情况的。
  [2]
  在逻辑表达式中:“等于”用 ==表示;“不等于”用 ~=表示;“或”用| 表示;“并且”用 &表示。

点评

不过这篇帖子是重复的  发表于 2011-6-28 22:37

评分

参与人数 1统计币 +18 收起 理由
veil + 18 几个帖子一起加分了

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


免责声明|关于我们|小黑屋|联系我们|赞助我们|统计211 ( 闽ICP备09019626号  

GMT+8, 2025-4-18 19:16 , Processed in 0.077864 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表