Warm tip: This article is reproduced from serverfault.com, please click

stata-将所有.dta文件合并到一个文件夹中?

(stata - Merge all .dta files in one folder?)

发布于 2020-12-04 23:02:39

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


Questioner
Nick M.
Viewed
0
krasnapolsky 2020-12-06 20:05:37

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