跳轉到內容

Stata/資料管理

來自華夏公益教科書,開放書籍,開放世界
(重定向自 Stata/Data)

讀取和匯入資料

[編輯 | 編輯原始碼]

通常,資料使用 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)
上一個:隨機數生成 索引 下一個:圖形
華夏公益教科書