如何在Stata中循环excel工作表和列表?
我刚开始与斯塔塔合作,但我不明白以下几点如何在Stata中循环excel工作表和列表?,excel,foreach,stata,Excel,Foreach,Stata,我刚开始与斯塔塔合作,但我不明白以下几点 如何循环查看Excel工作表列表和索引。这个现在很好用 clear all set more off local mysheets 1996 2000 2003 2007 2008 2010 local indices index1 index2 index3 foreach sheetname of local mysheets { import excel "C:\stata\Data.xls", sheet(`sheetname')
clear all
set more off
local mysheets 1996 2000 2003 2007 2008 2010
local indices index1 index2 index3
foreach sheetname of local mysheets {
import excel "C:\stata\Data.xls", sheet(`sheetname') firstrow clear
foreach index of local indices{
tobit theta index, ll(0) ul(1)
outreg using "C:\stata\results.doc" , `append'
local append "append"
}
}
- 确保本地宏名称始终一致(
vs.mysheet
)mysheets
- 对
循环内的foreach
参数(在本例中为foreach
)使用本地宏语法sheetname
- 如果使用本地宏定义
的outreg
选项,请在调用该选项之前对其进行定义append
clear all set more off local mysheets 1996 2000 2003 2007 2008 2010 local indices index1 index2 index3 foreach sheetname of local mysheets { import excel "C:\stata\Data.xls", sheet(`sheetname') firstrow clear foreach index of local indices { tobit theta `index', ll(0) ul(1) local append "append" outreg using "C:\stata\results.doc" , `append' } }
- 确保本地宏名称始终一致(
vs.mysheet
)mysheets
- 对
循环内的foreach
参数(在本例中为foreach
)使用本地宏语法sheetname
- 如果使用本地宏定义
的outreg
选项,请在调用该选项之前对其进行定义append
clear all set more off local mysheets 1996 2000 2003 2007 2008 2010 local indices index1 index2 index3 foreach sheetname of local mysheets { import excel "C:\stata\Data.xls", sheet(`sheetname') firstrow clear foreach index of local indices { tobit theta `index', ll(0) ul(1) local append "append" outreg using "C:\stata\results.doc" , `append' } }
- 确保本地宏名称始终一致(
vs.mysheet
)mysheets
- 对
循环内的foreach
参数(在本例中为foreach
)使用本地宏语法sheetname
- 如果使用本地宏定义
的outreg
选项,请在调用该选项之前对其进行定义append
clear all set more off local mysheets 1996 2000 2003 2007 2008 2010 local indices index1 index2 index3 foreach sheetname of local mysheets { import excel "C:\stata\Data.xls", sheet(`sheetname') firstrow clear foreach index of local indices { tobit theta `index', ll(0) ul(1) local append "append" outreg using "C:\stata\results.doc" , `append' } }
- 确保本地宏名称始终一致(
vs.mysheet
)mysheets
- 对
循环内的foreach
参数(在本例中为foreach
)使用本地宏语法sheetname
- 如果使用本地宏定义
的outreg
选项,请在调用该选项之前对其进行定义append
clear all set more off local mysheets 1996 2000 2003 2007 2008 2010 local indices index1 index2 index3 foreach sheetname of local mysheets { import excel "C:\stata\Data.xls", sheet(`sheetname') firstrow clear foreach index of local indices { tobit theta `index', ll(0) ul(1) local append "append" outreg using "C:\stata\results.doc" , `append' } }
本地
名称不同:mysheets
与mysheet
此外,您在定义它之前使用了'append'
(请注意'
的用法不正确;我不知道如何获得该名称,以便在此上下文中使用正确的反勾号)。现在还不清楚你为什么要首先定义它(至少在这种情况下)。@Brendan谢谢。修复了这个问题,但仍然无法工作。至于append,我发现如果文件还没有创建,它不会第一次追加,而是会追加。哦,我必须将sheetname
更改为`sheetname'
,并且它可以工作。请注意,您的local
的命名方式也不同:mysheets
与mysheet
不同,在定义它之前,您正在使用'append'
(请注意'
的用法不正确;我不知道如何才能在这种情况下使用正确的反勾号)。现在还不清楚你为什么要首先定义它(至少在这种情况下)。@Brendan谢谢。修复了这个问题,但仍然无法工作。至于append,我发现如果文件还没有创建,它不会第一次追加,而是会追加。哦,我必须将sheetname
更改为`sheetname'
,并且它可以工作。请注意,您的local
的命名方式也不同:mysheets
与mysheet
不同,在定义它之前,您正在使用'append'
(请注意'
的用法不正确;我不知道如何才能在这种情况下使用正确的反勾号)。现在还不清楚你为什么要首先定义它(至少在这种情况下)。@Brendan谢谢。修复了这个问题,但仍然无法工作。至于append,我发现如果文件还没有创建,它不会第一次追加,而是会追加。哦,我必须将sheetname
更改为`sheetname'
,并且它可以工作。请注意,您的local
的命名方式也不同:mysheets
与mysheet
不同,在定义它之前,您正在使用'append'
(请注意'
的用法不正确;我不知道如何才能在这种情况下使用正确的反勾号)。现在还不清楚你为什么要首先定义它(至少在这种情况下)。@Brendan谢谢。修复了这个问题,但仍然无法工作。至于append,我发现如果文件不是已经创建的,那么它不会第一次追加,而是会追加。哦,我必须将sheetname
更改为`sheetname'
,它可以工作。我是否可以添加Brendan,在嵌套的foreach循环中添加索引宏变量上的记号:tobit theta
`index',ll(0)ul(1)
谢谢;我只是更正了以前标识的项,但您当然是正确的。我是否可以添加Brendan以在嵌套的foreach循环中添加索引宏变量上的记号:tobit theta
`index',ll(0)ul(1)
谢谢;我只是更正了以前标识的项,但您当然是正确的。我是否可以添加Brendan以在嵌套的foreach循环中添加索引宏变量上的记号:tobit theta
`index',ll(0)ul(1)
谢谢;我只是更正了以前标识的项,但您当然是正确的。我是否可以添加Brendan以在嵌套的foreach循环中添加索引宏变量上的记号:tobit theta
`index',ll(0)ul(1)
谢谢;他只是在纠正t