跳转到内容

Stata/数据管理

来自维基教科书,开放的书籍,为开放的世界

读取和导入数据

[编辑 | 编辑源代码]

通常,数据使用 use 命令加载到内存中。clear 选项确保内存中的当前数据库将被删除,而不会保存最后的更改。

use "W:\Data\…\table.dta" , clear	

cd 命令允许指定工作目录,并简化将表加载到内存中的操作。

cd "W:\Data\" 
use table, clear

Stata9 用户可以使用 use10 命令导入 Stata10 数据集。

use10 table, clear

一些示例数据集存储在 Stata 目录中。它们可以使用 sysuse 命令加载到内存中。

. sysuse cancer, clear
. sysuse smoking, clear
. sysuse auto, clear
. sysuse jspmix, clear

您可以使用 insheet 导入逗号分隔值 (CSV) 格式。

insheet using "W:\Data\…\table.csv", delim(";")	

另请参阅

[编辑 | 编辑源代码]
  • 'webuse' 用于互联网数据
  • 'xmluse' 用于 xml 文件
  • 'infile' 用于文本文件
  • 'input' 用于从键盘输入数据
  • 'infix'
  • 'fdause' 用于 SAS xport 数据
  • 如果这些命令都不起作用,您可以使用 Stat/Transfer
  • FTRANS:用于批量转换文件格式的模块

保存和导出数据

[编辑 | 编辑源代码]
  • save
save table, replace

如果您使用 Stata10,可以使用 saveold 导出到 Stata9 格式。

saveold table, replace
  • outsheet : 导出到制表符分隔或 csv 格式。
outsheet using "W:\Data\…\table.csv", replace comma		

另请参阅

  • outfile
  • xmlsave
  • fdasave

追加和合并

[编辑 | 编辑源代码]

标准 Stata 命令是 merge。但是,用户编写的命令 mmerge 更安全,并提供更好的输出。可以使用 ssc install mmerge 命令或 findit mmerge 命令安装此命令。

  • dmerge
  • joinby 合并数据集之间所有可能的配对
  • append 如果您有两个具有相同变量但不同观测值的数据集,可以使用 append 命令创建一个数据集。
use data_1, clear
append data_2
br 

描述数据集

[编辑 | 编辑源代码]
  • des
  • des, s
  • codebook
  • codebook2

检测缺失值

[编辑 | 编辑源代码]
  • tabmiss
  • npresent
  • nmissing

可以使用 mvencode 命令将缺失值转换为值。

mvencode exg ga dvg verts eco dr dvd fn reg mnr div, mv(0) override

通常,您需要将变量从字符串转换为数值格式。有几种方法可以做到这一点。如果您在字符串变量中已经拥有数值,则应使用 destring。否则,您应使用 encode 命令。Encode 将自动创建一个数值变量,并将使用先前变量的字符串值作为值标签。


  • gen
  • egen
  • replace
  • recode
  • drop
  • keep
  • rename

'vallist' 给出 Stata 中分类变量的所有类别的列表。

vallist codep

处理标签

[编辑 | 编辑源代码]
  • lab var
  • lab list
  • lab define
  • lab value


  • 您可以使用 expand 命令扩展数据集(即按给定因子将观测值乘以)。

这对于生成面板数据模型很有用。在第一个示例中,我们在标准正态分布中绘制 10 个观测值,并将每个观测值复制一次。

clear
set obs 10
gen u = invnorm(uniform())
expand 2
sort u
br 

也可以将整数变量作为参数传递给 expand

clear
set obs 10
gen u = uniform()
gen var = 1 + int(10 * uniform())
expand var
sort u 
br
clear
set obs 10
gen u = invnorm(uniform())
expandcl 2 , gen(cl)

数据存储类型

[编辑 | 编辑源代码]

Stata 中的所有数值类型都是普通的“带符号”量,除了最高的 27 个值保留用于“缺失”类型(., .a, .b, ..., .z)。每个变量的存储大小如下

变量 大小(以字节为单位)
byte 1
int 2
long 4
float 4
double 8
string 每个字母 1 个(因此只有 ASCII 字符,而不是完整的 Unicode/UTF-8)
前:随机数生成 索引 下:图形
华夏公益教科书