首页 > 解决方案 > 将所有 .dta 文件合并到一个文件夹中?

问题描述

我有一个包含 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


标签: stata

解决方案


为了遍历所有的.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
}

推荐阅读