Stata/数据管理
外观
< 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) |