Loops Foreach循环以导入多个数据库
我有多个.dbf文件,希望一次导入一个,更改变量的名称,并另存为.dta文件。包含.dbf文件的文件夹也包含我希望Stata忽略的其他文件 每个Loops Foreach循环以导入多个数据库,loops,foreach,stata,dbf,Loops,Foreach,Stata,Dbf,我有多个.dbf文件,希望一次导入一个,更改变量的名称,并另存为.dta文件。包含.dbf文件的文件夹也包含我希望Stata忽略的其他文件 每个dbf文件都被命名为本地宏mylist中列出的选项之一,后跟\u ward\u CTS.dbf。例如,B_ward_CTS.dbf就是其中一个文件 我的代码如下: program drop _all macro drop _all set more off cd "/Users/slums-india/cleaning/maps processing/W
dbf
文件都被命名为本地宏mylist
中列出的选项之一,后跟\u ward\u 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
}
我似乎无法让这个循环运行。我得到的错误是无效的“文件”
我做错了什么?您需要删除循环中的第一行,更改
文件中的并添加引号:
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
}
我刚刚编辑了我的代码,以包含它的顶部部分,该部分已经包含了我的工作目录。我忘了包括错误是无效的“文件”。我刚刚编辑了我的答案。将来,请让我们知道确切的问题/错误以及发生的位置。现在我得到错误文件“file”\u ward\u CTS.dbf未找到,则该文件不在目录中。或者在文件中使用“而不是”。复制我的代码并重试。我的代码相同。你认为这和mylist部分有关吗?我是否应该在我的列表中列出每个病房的B_ward_CTS.dbf?