我想将一个文件夹中的多个Excel文件导入Stata,并将它们另存为单独的dta文件。每年有4个季度的床单。每个季度内有60张。我想单独导入每张纸。
E.g。
2004年第1季将第1页保存到2004Q11.dta
2004年第1季有Sheet60-保存到2004Q60
有没有办法在循环中写入速度?
local quarter q1 q2 q3 q4
local i= 0
foreach q of quarter {
foreach a of numlist 1/10 {
import excel "2012`quarter'data", sheet("Sheet`i'") clear
save "2012`quarter'`i'.dta", replace
}
}
答案 0 :(得分:0)
local quarter q1 q2 q3 q4
local i= 0
foreach q of quarter{
foreach a of numlist 1/10 {
import excel "2012`quarter'data", sheet("Sheet`i'") clear
save "2012`quarter'`i'.dta", replace
}
}
这里有一些关于
的混淆如何使用foreach
:of
语法需要关键字。 foreach
在没有local
作为关键字的情况下,无法查看本地宏。
在循环内使用循环索引。将i
设置为1并忽略循环索引。这是合法的,但可能不是你想要的,否则你只需要在同一张纸上阅读10次。
你可以在这里使用foreach
,但使用forval
可以更轻松地完成所有循环。
forval q = 1/4 {
forval a = 1/60 {
import excel "2012q`q'data", sheet("Sheet`a'") clear
save "2012q`q'`a'.dta", replace
}
}
我必须检查这个。为什么你写10不是60不清楚。
生成240个单独的.dta文件只会让您需要一个如何组合它们的策略,但这将是一个单独的问题。