Foreach循环导入多个数据库
Foreach loop to import multiple dbases
我有多个 .dbf 文件,我想一次导入一个,更改变量的名称,然后另存为 .dta 文件。包含 .dbf 文件的文件夹还包含我希望 Stata 忽略的其他文件。
每个 dbf
文件都被命名为本地宏 mylist
中列出的选项之一,后跟 _ward_CTS.dbf
。因此,例如,B_ward_CTS.dbf
是其中一个文件。
我的代码如下:
program drop _all
macro drop _all
set more off
cd "/Users/slums-india/cleaning/maps processing/Ward Point
Maps/Output"
clear
local files : dir "/Users/slums-india/cleaning/maps processing/WardPoint
Maps/Output" files "*.dbf"
local mylist B C D E FN FS GS HE HW KE
foreach file of local mylist {
use 'file'_ward_CTS.dbf
/*import database*/
import dbase "'file'_ward_CTS.dbf", clear
/*rename CTS number variable*/
rename cts$V4 cts_number
save "/Users/slums-india/cleaning/sra/temp/'file'_ward_CTS.dta", replace
}
我似乎无法将此循环转到 运行。我得到的错误是无效的 'file'.
我做错了什么?
您需要删除循环中的第一行,将 '
更改为 file
并添加引号:
foreach file of local mylist {
/*import database*/
import dbase "`file'_ward_CTS.dbf", clear
/*rename CTS number variable*/
rename cts$V4 cts_number
save "/Users/slums-india/cleaning/sra/temp/`file'_ward_CTS.dta", replace
}
我有多个 .dbf 文件,我想一次导入一个,更改变量的名称,然后另存为 .dta 文件。包含 .dbf 文件的文件夹还包含我希望 Stata 忽略的其他文件。
每个 dbf
文件都被命名为本地宏 mylist
中列出的选项之一,后跟 _ward_CTS.dbf
。因此,例如,B_ward_CTS.dbf
是其中一个文件。
我的代码如下:
program drop _all
macro drop _all
set more off
cd "/Users/slums-india/cleaning/maps processing/Ward Point
Maps/Output"
clear
local files : dir "/Users/slums-india/cleaning/maps processing/WardPoint
Maps/Output" files "*.dbf"
local mylist B C D E FN FS GS HE HW KE
foreach file of local mylist {
use 'file'_ward_CTS.dbf
/*import database*/
import dbase "'file'_ward_CTS.dbf", clear
/*rename CTS number variable*/
rename cts$V4 cts_number
save "/Users/slums-india/cleaning/sra/temp/'file'_ward_CTS.dta", replace
}
我似乎无法将此循环转到 运行。我得到的错误是无效的 'file'.
我做错了什么?
您需要删除循环中的第一行,将 '
更改为 file
并添加引号:
foreach file of local mylist {
/*import database*/
import dbase "`file'_ward_CTS.dbf", clear
/*rename CTS number variable*/
rename cts$V4 cts_number
save "/Users/slums-india/cleaning/sra/temp/`file'_ward_CTS.dta", replace
}