第一章 数据输入,存盘和调用文件命令以及数据管理命令

作者:赵耐青 授权刊登:医学统计之星

 本 节  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   逻 辑 表 达 式]

( 变 量 的 缺 省 值 (mining data) 表 达 式 为  .   )

在STATA 软 件 中 数 据 输 入 通 常 有 三 种 方 式: 键 盘 直 接 输 入, 从 外 部 的 文 本 文 件(ASC 码 文 件)  读 入 数 据 和 在DOS 环 境 下 应 用Transfer 软 件 直 接 把 Fox 或 其 他 格 式 存 盘 的 文 件 转 换 成 Stata 软 件 格 式 的 文 件。

1、 键 盘 输 入 方 式:

 命 令 格 式:

input   变量1   变量2     变量m

  输 入 数 据,  变 量 之 间 用 空 格, 每 个 记 录 一 行

 当 数 据 输 完 后, 输 入 end

 例: 应 用 克 矽 平 治 疗 矽 肺 患 者 10 名, 治 疗 前 后 血 红 蛋 白 的 含 量 如 下( 数 据 摘 自 金 丕 焕 主 编 <医 用 统 计 方 法>,pp 37):

 

 血 红 蛋 白 含 量

 治疗前

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   x1 x2

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  x1 x2 using c:\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

 或  save c:\user\ex1.dta, replace           

·         以 文 本 方 式 存 数 据 文 件:

STATA  命 令:

outfile 变量1 变量2 …  m   using 路径]文本数据文件名[,replace]

 其 中 子 命 令[,replace] 表 示 覆 盖 现 有 同 目 录 中 与 该 文 本 数 据 文 件 相 同 的 文 件

设 上 述 资 料 已 在STATA 状 态 下 输 入 到 计 算 机  中, 准 备 生 成 一 个 文 本 数 据 文 件 ex1.txt 并 存 入  c:\user , 则:

STATA 命 令:

outfile x1 x2  using c:\user\ex1.txt

 若  在 c:\user 中 已 经 有 ex1.txt, 并 打 算 用 当 前STATA 环 境 中 的  数 据 覆 盖 它。 则

outfile x1 x2 using c:\user\ex1.txt,replace

·          调 用 现 有 数 据 文 件( 以STATA 格 式 存 盘 的 文 件, 又 称 STATA  系 统 数 据 文 件)

use  [ 路 径] 文 件 名[,clear]                       

若 当 前 STATA 状 态 已 调 入 数 据, 则 要 调 入 新 的 数 据 时, 需 要 用 clear 子 命 令, 表 示 清 除 原 先 已 在 计 算 机 中 的 数 据。

如: 调 用  在 c:\user 子 目 录 下 的ex1.dta STATA 系 统数 据 文 件, 则:

use   c:\user\ex1

 若 当 前 状 态 已 有 数 据 在 计 算 机 内, 则:

use  c:\user\ex1,clear

 注意:use 与 save是一对调用STATA系统数据文件和以STATA系统格式 存盘的命令;infile 和 outfile也是一对调用外部文本数据文件和以 文本文件格式存盘的命令。

· 数据管理命令

   产 生 新 的 变 量:STATA 命 令:

   gen  新变量名=表达式

例如:当 前 计 算 机 中 正 处 于 STATA 状 态 下, 并 有 二 个 配 对 变 量  x1 和 x2 的 数 据, 因 此 需 要 计 算 两 个 变 量 的 差:x1-x2, 则:

gen x=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 =0 if  x<=5

replace    x=1 if  x>5 & x<=100 [2]

replace    x=2 if  x>100



[1] [   ]     略, 的。

[2]    中:   == 示;   ~= 示; 示;   & 示。

回教程首页

到第二章

示。

回教程首页

到第二章