我在Stata中有一个100 MB的文件,每个公司包含260个观察值。我的样本中有大约4000家公司。因此,时间序列数据一个接一个地堆叠在一起,每个公司,一个公司接一个在一个文件中。我想将此文件拆分为较小的文件,一个公司的文件。我尝试在Stata中使用forval
循环,我得到的只是计数器' i'是无效的名称。我使用的循环如下:
forval i=1/4000 {
use "file.dta" if internalid=='i',clear
save "newfile_'i'"
}
答案 0 :(得分:1)
您的数据形式很长,对于许多类型的分析,这通常是拥有它的最佳方式。但是,如果你真的需要拆分它,这是一个例子:
clear
set more off
*----- example data -----
input ///
id x
1 38
1 57
1 43
2 35
2 98
end
tempfile main
save `main'
*----- what you want ----
forval i = 1/2 {
use `main' if id == `i', clear
save id`i'
}
这是Stata FAQ。