Stata 轉 Excel —— export excel 命令詳解

2021-02-21 Stata連享會

作者:李剛 (中南財經政法大學)
郵箱:gang.li.0814@gmail.com

Stata連享會 計量專題  || 公眾號合集

點擊查看完整推文列表

北京, 1月8-17日,連玉君-江艇主講

2020寒假Stata現場班

(西安, 3月26-29日,司繼春-遊萬海 主講;  內附助教招聘)

連享會-文本分析與爬蟲專題班,西北工業大學,2020.3.26-29
1. 應用背景

數據處理過程中,通常面臨數據集格式轉換的難題,相比 Stata 的 .dta 數據文件,使用更廣泛的是 Excel 數據。那麼如何將 .dta 數據轉換成以 .xls 或 .xlsx 後綴的 Excel 數據呢?

本文介紹的 export excel 命令便是主要解決此問題。下面將圍繞用法應用案例兩方面展開,主要介紹命令的使用。

若採用窗口操作,相應的流程為:File → Export → Data to Excel spreadsheet(_.xls; _.xlsx)

2. 用法介紹

下面,我們分兩個小節,分別介紹 export excel 的基本語法和各個選項。

2.1 基本語法

export excel 的基本語法如下:

export excel [using] filename [if] [in][, export_excel_options]

其中,export excel 為命令主體,不可省略;using 為指定使用的文件,導出整個數據集時可省略;export_excel_options 為在基礎命令上添加的選項,詳細介紹見 2.2 小節。

若只需導出部分變量名,則可在excel export 後面添加相應的變量名,需要注意,此時的 using 不可省略,對應的語法如下:

export excel [varlist] using filename [if] [in][, export_excel_options]

2.2 選項介紹

export excel 包含了豐富的選項,下面從主要選項 (Main Options) 和其他選項 (Advanced Options) 兩方面進行介紹,並重點選取數據處理常用的進行詳細說明。

主要選項 (Main Options)選項用途replace覆蓋已有文件firstrow(variables or varlabels)設置導出數據第一行為變量名還是變量標籤sheet("sheetname")指定 sheetnamecell(start)從 start (upper-left) 開始寫入數據sheetmodify不修改導出範圍之外的數據,不能和 sheetreplace replace 選項連用sheetreplace導出之前先將 sheet 數據清除 ,不能和 sheetreplace replace 選項連用nolabel導出變量值,而不是變量的值標籤keepcellfmt保留已有表格的單元格格式

值得說明的是:常用的是 sheet("sheetname") firstrow(variables|varlabels) replace 選項。

sheet() 選項可以指定導出到 Excel 時數據的 sheet 名稱,可是實現按需求修改 sheet 名的功能,套用在循環中使用比較方便,可以參見下文 3.1 小節 Task2 中的用法。firstrow(variables|varlabels)選項可以指定導出到 Excel 時表頭為變量名還是變量標籤,當不添加 firstrow 選項時,默認時導出數據,不包含變量名。replace 選項如同其他命令中的用法,覆蓋已有數據,一般必選,否則報錯 file already exists 。但當使用sheet() 選項時repalce 可以省略,表示在一份 Excel 表格中寫入多張 sheet **。

下面為大家演示 sheet("sheetname") 和 firstrow(variables|varlabels) 的使用效果,注意仔細觀察導出的 Excel 文件 sheet 名表頭 的區別。

sysuse auto, clear

* 設定 Excel 文件的子表 (Sheet) 名
export excel using "auto.xls", replace sheet("auto")

//結果:注意觀察 Excel 文件的 Sheet 名

* 導出Excel的表頭為變量名
preserve
keep make price mpg rep78
export excel using "auto_varname.xls", firstrow(variable) replace
restore

/*結果:auto_varname.xls 的前三行
make price mpg rep78
AMC Concord 4,099 22 3
AMC Pacer 4,749 17 3
*/

*設定導出Excel的表頭為變量名
preserve
keep make price mpg rep78
export excel using "auto_varlabel.xls", firstrow(varlabel) replace
restore

/*結果:auto_varlabel.xls 的前三行
Make and Model Price Mileage (mpg) Repair Record 1978
AMC Concord 4,099 22 3
AMC Pacer 4,749 17 3
*/

其他選項 (Advanced Options)選項用途datestring(datetime_format)將時間格式數據導出為字符型missing(repval)將缺失值導出為指定的缺失值標記(repval),字符型或數值型均可,
如無此選項,默認導出為空格locale(locale)當使用擴展的 ASCII 字符集可能需要此選項。默認的環境為 UTF-83. 應用案例3.1 案例一

按照 rep78 變量(汽車 1978 年維修次數) 將 auto.dta 拆分成 Excel 格式的子集 。

Task1: 按照 auto_rep78_i_.xls 命名文件,其中 i 表示相應維修次數;Task2: 生成 auto_rep78_all.xls數據集,其中一個 Sheet 對應一個子集。

提示:解決這兩個問題的關鍵在於 2.2 部分重點介紹的 sheet("sheetname")和firstrow(variables|varlabels) 兩個選項的使用。

sysuse auto, clear

tabulate rep78 //列表呈現 rep78 的類別和頻數分布

levelsof rep78,local(rep)
foreach i in `rep'{
preserve
keep if rep78 == `i'
export excel using "auto_rep78_`i'.xls", firstrow(variable) replace
export excel using "auto_rep78_all.xls", firstrow(variable) sheet(`i')
restore
}

3.2 案例二

使用 export excel 導出 nlsw88.dta數據集的 變量名變量標籤 ,存在name和 varlabel兩列,文件名為 nlsw88_varname_varlab.xls 。

處理思路: 導入 nlsw88.dta  數據 --> 使用 firstrow(variable) 選項獲取變量名 (Data1) --> 使用 firstrow(varlabel) 選項獲取變量標籤(Data2) --> 合併  Data1  和  Data2  --> 由行轉置為列 。

sysuse nlsw88, clear

*獲取變量名
preserve
export excel using "nlsw88_varname.xls" in 1,firstrow(variable) replace
import excel using "nlsw88_varname.xls", clear
keep in 1
save "nlsw88_varname.dta", replace
restore

*獲取變量標籤
export excel using "nlsw88_varlab.xls" in 1, firstrow(varlabels) replace
import excel using "nlsw88_varlab.xls", clear
keep in 1
save "nlsw88_varlab.dta", replace

*合併、轉置
use "nlsw88_varname.dta", clear
append using "nlsw88_varlab.dta"
sxpose, clear
rename _var1 varname
rename _var2 varlabel
list varname varlab, noobs
export excel using "nlsw88_varname_varlab.xls",firstrow(variable) replace

/*
+-+
| varname varlabel |
|-|
| idcode NLS id |
| age age in current year |
| race race |
| married married |
| never_married never married |
|-|
| grade current grade completed |
| collgrad college graduate |
| south lives in south |
| smsa lives in SMSA |
| c_city lives in central city |
|-|
| industry industry |
| occupation occupation |
| union union worker |
| wage hourly wage |
| hours usual hours worked |
|-|
| ttl_exp total work experience |
| tenure job tenure (years) |
+-+
*/

小彩蛋:describe, replace 命令可以快速實現上述需求,將數據集的 position, name, type, isnumeric, format, vallab, varlab 導出到一個新的數據集。

sysuse nlsw88, clear
describe, replace
describe
list name varlab, noobs
keep name varlab
export excel using "nlsw88_varname_varlab.xls",firstrow(variable) replace

4. 附:文中所有代碼

* ##2.2 介紹 firstrow 和 sheet 的使用
sysuse auto, clear
*設定Excel文件的Sheet名
export excel using 「auto.xls", replace sheet("auto")

*導出Excel的表頭為變量名
preserve
keep make price mpg rep78
export excel using "auto_varname.xls", firstrow(variable) replace
restore

*設定導出Excel的表頭為變量名
preserve
keep make price mpg rep78
export excel using "auto_varlabel.xls", firstrow(varlabel) replace
restore

* ## 3.1 案例一
sysuse auto, clear
levelsof rep78,local(rep)
foreach i in `rep'{
preserve
keep if rep78 == `i'
export excel using "auto_rep78_`i'.xls", firstrow(variable) replace
export excel using "auto_rep78.xls", firstrow(variable) sheet(`i')
restore
}

* ## 3.2 案例二
sysuse nlsw88, clear

*獲取變量名
preserve
export excel using "nlsw88_varname.xls" in 1,firstrow(variable) replace
import excel using "nlsw88_varname.xls",clear
keep in 1
save "nlsw88_varname.dta", replace
restore

*獲取變量標籤
export excel using "nlsw88_varlab.xls" in 1, firstrow(varlabels) replace
import excel using "nlsw88_varlab.xls",clear
keep in 1
save "nlsw88_varlab.dta", replace

*合併、轉置
use "nlsw88_varname.dta", clear
append using "nlsw88_varlab.dta"
sxpose, clear
rename _var1 varname
rename _var2 varlabel
list varname varlab, noobs
export excel using "nlsw88_varname_varlab.xls",firstrow(variable) replace

關於我們歡迎加入Stata連享會(公眾號: StataChina)

相關焦點

  • 從Excel到Stata的「擺渡車」——import excel命令
    這個時候,就該我們的import excel命令「粉墨登場」了。2、import excel命令的語法  import excel是我們經常使用的命令,也是Stata中相對來說比較簡單的命令,我們可以使用help import excel命令來查看一下它的基本語法:import excel [using] filename
  • Stata用putexcel命令創建Excel表格1:概念和框架
    在Stata 14.2版本中,我們在putexcel命令方面做了一些改進,所以你可以升級Stata版本,這樣就可以運行下面這些案例。你可能還記得Kevin Crow曾經寫過的2篇關於putexcel命令的博文,博文名稱是Export tables to Excel和Retaining an Excel cell’s format when using putexcel。你需要將你的Stata版本設置到13.1來運行Kevin博文中提供的例子。
  • Stata實現Excel中vlookup函數功能
    clear all cap mkdir F:\vlookupcd F:\vlookup import excel F:\vlookup\第一單位排名匯總.xlsx, sheet("Sheet1") firstrow input str30 final_univ 北京第二外國語學院中南財經政法大學深圳大學上海大學華中科技大學end
  • Cad 轉 Excel,CAD表格轉為excel表格(兩種方法)
    △Cad 轉 Excel方法一,CAD自帶的表格1,單擊菜單欄→繪圖→表格(或者在命令行輸入table命令)△Cad 轉 Excel方法二,該方法藉助一個小插件,1,加載插件((c2e)表格輸出到EXCEL .VLX),加載完,把CAD自帶表格X炸開成線盒文字,
  • stata常見命令分享(下)
    前幾日小編結合自己做數據的經歷給大家總結分享了stata常用命令分享(上)今天就繼續給大家分享哦~>上回我們講到將excel表格中的數據導入stata隨後可以進行一些簡單操作以實現我們的小心思那麼一頓操作猛如虎之後或許你想給變量換個名字那麼請輸入
  • excel輸入身份證號變成0 數字亂碼解決方法詳解
    excel輸入身份證號變成0 數字亂碼解決方法詳解時間:2017-03-22 08:29   來源:系統天堂   責任編輯:玲玲 川北在線核心提示:原標題:excel輸入身份證號變成0 數字亂碼解決方法詳解 excel輸入身份證號變成0怎麼辦呢?
  • stata練習-保存數據
    (2)「.xls」格式的Excel數據文件保存「.xls」格式的Excel數據文件的STATA命令是「export excel」,其命令是:cd I:\STATA練習\練習數據\1.6練習數據\數據文件1export excel using 練習數據02.xls, firstrow(variables) replace首先通過STATA
  • word轉excel方法,Word怎麼轉成Excel
    奇點來臨小編了解到的情況,如果提到辦公軟體的使用,不得不提到兩個軟體,一個是word,一個就是excel。最近有朋友在後臺給小編留言如何把word轉化excel,今天小編就和大家聊聊這個問題。word轉excel方法word作為一個文本處理軟體,表格編輯能力沒有excel強大,這是必然的。很多時候,當我們用word做好表格之後,我們會發現,很多表格功能卻無法使用,比如分類匯總,比如篩選等。這個時候,我們就需要把word轉化成excel來進行處理。
  • Stata結果輸出:outreg2命令詳解
    xxx.doc 為輸出文件名為 xxx 的 word 文檔命令。類似得,如果需要輸出為 excel 表格則更改代碼為 xxx.xsl 即可。title(Decriptive statistics) 為自定義輸出表格的名稱命令,可在括號內自行編輯表格名稱。
  • 如何在Stata16中調用Python
    很簡單,使用stata:前綴即可。sfi的文檔在以下地址中:https://www.stata.com/python/api16/從功能(而非模塊)上梳理SFI的命令,主要包括以下4類:創建數據表的命令,主要包括設置樣本量和添加變量,形式上以add開頭將Stata數據轉化為Python數據的命令,形式上以get開頭將Python數據轉化為Stata數據的命令,形式上以
  • excel轉pdf怎麼轉換?教你三種方法完成pdf轉換
    excel轉pdf怎麼轉換?說到excel表格相信很多的小夥伴並不陌生,往往在表格中會存在著大量的數據,為了避免這些數據的篡改,經常會看到許多的小夥伴把excel表格文件轉換為pdf格式的文件。之前還有小夥伴問到excel轉pdf怎麼轉換?
  • word怎麼轉excel?教你簡單一招,輕鬆實現word轉excel
    為了達到一目了然的效果,我使用迅捷PDF轉換器把word轉excel了,速度還挺快的。這款軟體有3個不同版本:app、pc以及web,選擇上還挺人性化的。接下來,我和大家說說輕鬆實現word轉excel有什麼招數。
  • 怎樣利用excel表格及CMD命令對文件進行批量重命名
    於是,心血來潮的我,想對這些文件進行一次批量重命名,正是在這樣欲望的驅使下,利用excel表格及CMD命令對文件進行批量重命名的神奇操作就開始了。操作步驟來了,如果你耐心的看下去,一定會有一種「緣,妙不可言」的感覺。
  • stata的egen命令和excel每行添加表頭
    微信公眾號:學點啥玩點啥學而不玩則累,玩而不學則廢;期待與你一起學習一起玩耍一起成長egen命令的一些基本用法計算統計量 egen命令可以搭配諸多函數,從而計算出數據的多種統計量,如均值。如果我們想計算不同人種的平均工資,egen命令也是可以辦到的。
  • word轉excel有什麼好用的方法?具體word轉excel操作分享
    word轉excel有什麼好用的方法?當我們在word中匯總了一些數據時,想要將其內容轉換到excel表格中,一般大家都是怎麼操作呢?如果大家不會對這兩種文件進行轉換的話,可以嘗試一下小編以下的方法,這樣我們就可以很快的完成word到excel表格的轉換了。
  • stata練習-讀入和保存數據示例演示
    練習數據_讀入和保存數據.log, replaceversion 14.1set more off****創建人:m*創建時間:2018年*任務:演示如何讀入和保存數據****讀取數據use 練習數據01.dta, clearimport excel 練習數據
  • 用Stata搞實證之面板模型入門
    encode命令將其改為數值型數據這個命令中 encode為命令的名字,其作用是將字符數據轉換為數值型。如果你的城市是以數值如1,2,3,4來命名的,則可以省略這一步緊接著,可以用xtset來聲明面板模型的截面和時間在stata裡,x代表個體或截面(在計量中和paper裡,個體一般用n或i來表示,面板的模型的公式角標一般是it或者nt),t代表時間,set便是設置的意思。
  • excel轉pdf如何保持在一頁
    以前,寫報告就用word,做表格就用excel,辦公似乎只需要這兩個程序就可以搞定了。但是現在,文件格式卻越來越細化了,例如PPT、PDF這樣的新興文件格式,越來越頻繁地出現在了咱們的日常辦公之中。今天,多多想要介紹的辦公技巧便是與PDF有關的。
  • excel轉pdf詳細方法介紹:excel表格要怎麼轉換成pdf文件?
    excel轉pdf詳細方法介紹:自高中畢業以後,我便沒上大學了,在社會上打拼已超過10年。在2018年的時候,我辭掉了廠工,決定出廠尋求別的出路。後來,從大城市回到了老家,在家附近開了一家餐飲小店。後來小店有投資人了,更得把店裡的經營報表、帳本流程等自己做的excel表格轉pdf文件後,發給他們參考。迅捷PDF轉換器是我一直在用的,有手機、電腦以及網站這3個版本,我一般用它來轉換文件格式。如果你也有這方面需要,可以往下看看excel轉pdf方法步驟。
  • word轉excel詳細教程
    今日課程主要給小夥伴們介紹如何將word文檔完美轉換為excel表格,這裡介紹兩種轉換方法。利用分列的方法進行轉換。打開word文檔,複製需要轉換為excel表格的內容打開excel,按住CTRL+v複製內容,點擊【數據】-【分列】 選擇分隔符