stata小小白

stata命令详解-import(export) excel

2020-01-23  本文已影响0人  Hobbit的理查德

1. 前言

在目前工作中,用stata清洗及分析数据,感觉很顺滑。无奈不少同学因为help文件里的英文望而却步。
带着学习和分享的目的,根据工作经验,给大家整理一些常用以及不太常用但很有用的命令,并对该命令的help文件进行有侧重的详解。

2. 命令及获取

import(export) excel:导入(导出)excel文件,系统自带命令

3. 描述

  • import excel: 导入excel数据至stata软件。
  • import excel filename, describe :显示excel文件中每个sheets(工作表)的数据范围。
  • export excel:将数据保存为excel文件。
    • 上述三个命令可运用于.xls和.xlsx文件。
  • import excelexport excel
    • 在windows,mac和linux系统上均支持。
    • 如果导入和导出的filename没有加扩展名,则默认为.xls.
      • 例如,import excel auto先检索导入auto.xls,再检索导入auto.xlsx。
    • import excel限制导入的.xlsx文件大小,不超过40M,如果文件太长,导入时间会较长。

4. 语法

*导入excel文件
import excel [using] filename [, import_excel_options]

*导入excel文件中的部分变量(字段)
import excel extvarlist using filename [, import_excel_options]

*描述excel文件中每个sheets(工作表)的数据范围
import excel [using] filename, describe

*导出数据为excel文件
export excel [using] filename [if] [in] [, export_excel_options]

*保存部分变量(字段)的数据为excel文件
export excel [varlist] using filename [if] [in] [,
                                export_excel_options]

  • [,]:中括号里的为额外选项命令,按需求添加,而添加选项记得加英文逗号,
  • filename(文件名):如果语法中只有文件名,则默认文件格式为.dta;如果文件名中有空格,记得用双引号""将该目录名字括起来。

5. 选项

  • import_excel_options 的选项
    • sheet("sheetname"):添加该选项,导入特定的工作表,工作表名称为sheetname。不添加该选项,默认导入第一个工作表。最短可缩写成sh("sheetname")
    • cellrange([start][:end]):添加该选项,指定导入工作表中的数据范围,例如,cellrange(A1:C23)。最短可缩写成cellra([start][:end])
    • firstrow:添加该选项,指定excel数据中的第一行为变量名。①本选项不能在import excel extvarlist using filename中使用。②若通过cellrange([start][:end])指定了导入数据的范围,则加firstrow后指定数据范围的第一行为变量名。③import excel会将第一行转为stata有效的变量名(如以A,B,C等命名),原数据内容则变为变量标签。最短可缩写成first
    • case(preserve|lower|upper):添加该选项,结合选项firstrow,可以对第一行的英文变量名进行大小写转换。不添加该选项,则默认保持原样。例如,excel中的字段名为Ab,添加选项case(preserve)后,stata中变量名为Ab,最短可缩写成case(pre);添加选项case(lower)后,stata中变量名为ab,最短可缩写成case(l);添加选项case(upper)后,stata中变量名为AB,最短可缩写成case(u)
    • allstring:添加该选项,强制导入的excel文件中的所有数据都转为字符串型数据。最短可缩写成all
    • clear:添加该选项,使得在导入excel文件前清除现在内存中的数据。
    • local(“locale”):结合命令import excel使用,但不显示在对话框中。添加该选项,指定工作簿使用的语言环境。 可能会在使用扩展的ASCII字符集时需要此选项。此选项对Microsoft Windows无效。 默认语言环境是UTF-8。
  • export_excel_options的选项
  • 主要选项
    • sheet(“sheetname”):添加该选项,保存excel数据至指定工作表,工作表名称为sheetname。如果名为sheetname的工作表不存在,则新建名为sheetname的工作表。如果不添加该选项,则默认保存至excel文件中的第1个工作表。最短可缩写成sh("sheetname")
    • cell(start):添加该选项,指定保存的数据开始的位置。若不添加该选项,则默认从第一行第一列开始存数据。
    • sheetmodify:添加该选项,导出数据至excel时,数据范围外的单元格内容不改变。本选项不能和sheetreplace或者replace结合使用。最短可缩写成sheetmod
    • sheetreplace:添加该选项,在导出数据至excel前,将excel的工作表中的内容清除。本选项不能和sheetmodify或者replace结合使用。最短可缩写成sheetrep
    • firstrow(variables|varlables):添加firstrow(variables)选项,指定导出excel数据的第一行为变量名,最短可缩写成firstrow(var)。;添加firstrow(varlables)选项,指定导出excel数据的第一行为变量标签,最短可缩写成firstrow(varl)
    • nolabel:添加该选项,导出excel数据时,数值型数据以数值展示,而不是值标签展示。最短可缩写成nol
    • replace:添加该选项,替换现有的excel文件。本选项不能和sheetmodify或者sheetreplace结合使用。
  • 高级选项
    • datestring("datetime_format"):添加该选项,导出所有日期时间型变量时,以日期时间格式的字符串形式展现。最短可缩写成date
    • missing("repval"):添加改选项,导出excel数据时,将缺失值以 repval 展示,repval自定义,可以是数值也可以是字符串。最短可缩写成miss
    • local(“locale”):结合命令export excel使用,但不显示在对话框中。添加该选项,指定工作簿使用的语言环境。 可能会在使用扩展的ASCII字符集时需要此选项。此选项对Microsoft Windows无效。 默认语言环境是UTF-8。

6. 举例

*调入数据auto.dta
webuse auto
调入数据.png
*导出数据为auto.xls,将变量名作为第一行的字段名
export excel auto, firstrow(variables)
导出数据.png
*导入auto.xls文件数据,同时清除现有内存数据,将第一行作为变量名
import excel auto.xls, firstrow clear
*查看数据情况
describe
导入数据.png
*导入auto.xls文件数据,同时清除现有内存数据,将第一行作为变量名,而且导入数据范围为A1:D70,即导入前4列数据
import excel auto.xls, cellrange(:D70) firstrow clear
*查看数据情况
describe
导入部分数据.png
*调入数据auto.dta
webuse auto, clear
*导出数据为auto.xls,不包括变量名
export excel auto.xlsx
导出.xlsx数据.png
*导出指定变量数据至auto.xls,并替换现有auto.xls数据
export excel make mpg weight using auto, replace

导出指定变量数据.png

7. 菜单

*导入excel

File > Import > Excel spreadsheet (.xls;.xlsx)

*导出excel

File > Export > Data to Excel spreadsheet (.xls;.xlsx)

8. 存储的结果

import excel filename, describe存储如下结果:

  • r(N_worksheet):excel文件中的工作表的数量
  • r(worksheet_#):excel文件中第#个工作表的名字
  • r(range_#):excel文件中第#个工作表的数据范围

9. 补充

*按照yxmc(院校名称)字段情况,导出不同院校的数据
*将变量yxmc的值存至暂元level中
levelsof yxmc,local(level)
*循环level中的值
foreach x of local level {
*preserve和restore之间的操作可恢复
preserve
*保留yxmc为level中的值的数据
keep if yxmc=="`x'"
*导出excel数据至D:\excel\分院校-`x'.xlsx,其中,`x'为level中的值,并且将变量标签作为第一行字段名,数值型数据以数值展示,而不是值标签。
export excel using D:\excel\分院校-`x'.xlsx, firstrow(varlabels) nolabel
restore
}

*将目标文件夹设定为工作路劲
cd D:\excel
*用暂元files提取所有后缀为xlsx的文件名
local files: dir "." file "*.xlsx" 
*循环files,按原文件名保存成dta文件
foreach file in `files'{
import excel using "`file'", firstrow case(lower) clear
save "`file'.dta",replace  
    }  
上一篇下一篇

猜你喜欢

热点阅读