我有一个包含36个.dta文件的文件夹,这些文件的结构相同。每个字段都有2个字段:RowID和value。每个文件还具有相同的行数(2,500)。“值”变量的名称对于每个文件都是唯一的。我想构建一个循环,该循环在第一个.dta文件中加载,然后合并其他35个文件中的每个“值”变量。任何帮助将不胜感激。
以下是来自3个.dta文件的示例数据:
Example 1:
input int rowid_ float value_ex_1
1 0
2 0
3 0
4 1
5 1
6 1
7 1
8 1
9 1
10 1
Example 2:
input int rowid_ float value_ex_2
1 1
2 0
3 0
4 1
5 1
6 0
7 0
8 0
9 0
10 0
Example 3:
input int rowid_ float value_ex_3
1 0
2 0
3 0
4 0
5 0
6 1
7 1
8 0
9 0
10 1
为了遍历你的所有.dta files
,首先请确保它们以逻辑顺序命名(例如example_1.dta,example_2.dta,example_3.dta等)。
然后,你可以加载第一个数据集并通过循环遍历其他数据集forvalues
:
cd "path/to/your/datasets"
use example_1.dta, clear
forvalues i = 2(1)35 {
merge 1:1 rowid_ using example_`i'.dta
drop _merge
}