我读取了一个文件夹中的多个dta文件,并以csv格式导出它们。我应该导出样本大小超过30的dta文件。
cd D:\myfolder\
/* There are many dta files in myfolder */
fs *.dta
foreach f in `r(files)' {
use `f', clear
export delimited using "D:\csvfolder\mycsvfile_`f'.csv", novarnames replace
}
如何阻止导出包含30个或更少观察值的数据集?
答案 0 :(得分:4)
使用if
:
clear
set obs 29
gen t = "should not be here"
tempfile file1
save "`file1'"
clear
set obs 31
gen t = "should be here"
tempfile file2
save "`file2'"
clear
*-----
foreach f in file1 file2 {
use "``f''", clear
if _N > 30 {
export excel using "~/Desktop/mycsvfile_`f'.xls"
}
}
有关Stata中使用的if
的不同概念,请参阅http://www.stata.com/support/faqs/data-management/multiple-operations/。
答案 1 :(得分:1)
试试这个
if c(N)>30 export delimited using ...