Loops 在文件上循环时出错,-fs-命令
我试图将一些数据集分为两部分,在如下文件上运行循环:Loops 在文件上循环时出错,-fs-命令,loops,foreach,split,stata,Loops,Foreach,Split,Stata,我试图将一些数据集分为两部分,在如下文件上运行循环: cd C:\Users\Macrina\Documents\exports qui fs * foreach f in `r(files)' { use `r(files)' keep id adv* save adv_spa*.dta clear use `r(files)' drop adv* save fin_spa*.dta }
cd C:\Users\Macrina\Documents\exports
qui fs *
foreach f in `r(files)' {
use `r(files)'
keep id adv*
save adv_spa*.dta
clear
use `r(files)'
drop adv*
save fin_spa*.dta
}
我不知道循环中的内容是否正确写入,但关键是我得到了错误:
invalid '"e2.dta'
其中e2.dta是文件夹中的第二个文件。此消息是指循环还是指循环内的内容?错在哪里 你想要像这样的线条吗
use "`f'"
不是
考虑到fs
(如您应该解释的,从SSC安装)返回r(文件)
,作为所有文件的列表,而您希望依次使用(不是一次全部)
错误消息提供了信息:use
对它看到的第二个文件名感到困惑(因为只有一个文件名有意义)。其他文件名被忽略:use
一旦出现明显错误就会失败
顺便说一句,请注意,如果文件名中包含空格,则在文件名周围放置“
”仍然很重要 您的操作系统是否允许将adv_spa*.dta
作为文件名?考虑到引用带有通配符符号的文件的范围,我认为这是非法的。是的,你是对的。它没有按我希望的那样工作,我收到一条错误消息:无法打开文件advisors_西班牙*.dta。我尝试重新命名它们。
use `r(files)'