STATA问题-命令
- 1.某行数据作为变量名-nrow
- 2.某行数据作为变量标签-labone
- 3.数据中有NA无法destring-ignore
- 4.长宽数据变换-gather、spread
- 5.合并所有子文件夹中的excel文件
- 6.保留重复数据中最大值-gsort、tag
- 7.导入数据-import
- 8.字段匹配-strmatch
- 9.横向合并-merge
- 10.纵向合并-appending
- 11.回归\分组回归-reg、outreg2
- 11.描述性统计-tabstat
- 12.相关性
- 13.统计字符串个数-length
- 14.横向加总-rowtotal
- 15.小于等于中位数、平均数则记为1-!missing
- 16.日期处理-datetime
- 17.滞后一期市场收益率-l.
- 18.剔除年交易少于17周的数据-egen count
- 19.winsor缩尾-winsor2
- 20.输出回归结果-outreg2
1.某行数据作为变量名-nrow
ssc install nrow
nrow [row#] [, keep varlist(varlist)]
nrow //第一行作为变量名,删除第一行
nrow,keep //第一行作为变量名,并保留第一行
nrow, varlist(A B) keep //A、B列的第一行作为A、B的名称,并保留
nrow 2, varlist(C) keep //C列的第2行作为C列的名称,并保留第二行
2.某行数据作为变量标签-labone
ssc install labone
labone [varlist] [,options]
labone, nrow(1) //第一行作为变量标签
labone, nrow(1 2) //第1、2行作为变量标签,默认空格连接
labone, nrow(1 2) concat(/) //第1、2行作为变量标签,并用/连接
3.数据中有NA无法destring-ignore
destring varname, replace ignore("NA") //destring后NA会被替换为缺失值
3.1 检查数据中的非数字字符
tab var if regexm(var,"[^0-9.]")
4.长宽数据变换-gather、spread
ssc install tidy
gather var1 var2, variable(name1) value(name2) //宽数据变为长数据,name1为分类变量名,name2为值名称
spread name1 name2 //长数据变为宽数据
reshape var1 var2, i(stkcd year) j(class) //长变宽,多变量
5.合并所有子文件夹中的excel文件
根文件路径下有子文件夹2013-2016,其下分年份分别有子文件夹,各年份子文件夹中有数个excel文件,合并这些excel文件
cd 根文件路径
forvalues n = 2013/2016{
local s: dir "根文件路径/2013-2016/`n'" files "*.xlsx", respectcase
foreach i in `s' {
import excel "根文件路径/2013-2016/`n'/`i'", sheet("`n'") firstrow case(lower) clear
foreach x of varlist*{
local vlabel = `x'[1]
label variable `x' "`vlabel'"
} //设置第一行作为数据标签
drop in 1
save "`i'.dta",replace
}
}
// ssc install openall,replace
openall * //纵向合并所有dta文件
save "postnum.dta",replace
5.1路径下所有xlsx文件名存入暂元s中-local
local s: dir "路径“ files "*.xlsx", respectcase
5.2纵向合并所有dta文件-openall
ssc install openall
openall *
6.保留重复数据中最大值-gsort、tag
* 保留一个组中最大的
clear
input id year tog
1 2000 0
1 2000 1
1 2001 0
1 2003 1
1 2003 2
2 2000 3
2 2001 0
2 2002 0
3 2000 0
3 2000 1
3 2001 1
end
* 按id year分组,保留tog最大的数据
gsort id year -tog //aaa负向排序
egen s=tag(id year)
keep if s == 1
7.导入数据-import
import delimited "文件名.csv",delimiter(space) encoding(utf8) clear
import excel "文件名.xlsx", sheet("sheet1") firstrow allstring clear
7.1 导出数据
* 输出Excel格式
export excel using "filename.xlsx",firstrow(variables) keepcellfm