【发布时间】:2021-12-13 03:06:38
【问题描述】:
我正在编写一个使用 putexcel 代码按年份导出数据的程序,但不确定错误出在以下位置:
* Create paired locals for years
local year 2000 2001 2002 2003 2004 2005
local col B D F H J L
local name year1 year2 year3 year4 year5 year6
* Count number of variables in local
local count: word count `year'
* Loop through paired locals
forval mycounter = 1/`count'{
local myyear: word `mycounter' of `year'
local mycol: word `mycounter' of `col'
local myname: word `mycounter' of `name'
estpost tabstat variable1 if level == 1 & year == `myyear', stat(sum)
mat variable1_`myname' = e(sum)
estpost tabstat variable2 if level == 4 & year == `myyear', stat(count)
mat variable2_`myname' = e(count)
mat vars_`myname' = variable1_`myname', variable2_`myname'
putexcel `mycol'7 = matrix(vars_`myname')
}
我收到“无效语法”错误。奇怪的是,该程序能够循环并为第 1 年到第 4 年创建矩阵。谁能帮我确定问题可能是什么?循环的编写方式或数据集本身可能有问题吗?非常感谢。
【问题讨论】:
-
您能分享您的数据子集吗? (使用命令
dataex共享一些数据)由于您能够运行循环的前4 次迭代,因此很可能是您的数据中的某些内容而不是您的代码中的某些内容导致了此错误。如果您因任何原因无法共享数据,请尝试放弃第 5 年,看看您是否有同样的问题。或者删除第 1 年,看看它在第 4 年之后是否仍然崩溃,或者它是否在第 4 次迭代后崩溃,无论您的数据中的顺序如何等等。 -
关于示例数据的相同点在您之前的帖子stackoverflow.com/questions/69946708/… 中提出,请通过接受或解释它如何无法回答您的问题来回复那里的答案。
-
毕竟,如果您最好的猜测是问题出在您的数据中,而我的猜测也是如此,那么我们需要的信息就是您的数据。
标签: loops stata export-to-excel