Stata 在变量列表中指定变量之前的变量处停止
我被困在一个棘手的数据管理问题上,这是我需要在Stata中完成的。我使用的是13.1版 我有40多个数据集需要使用每个数据集中不同的变量子集来处理。由于专有原因,我不能包含我正在进行的数据或具体分析,但会尝试包含示例和代码 我有一组数据集,Stata 在变量列表中指定变量之前的变量处停止,stata,stata-macros,Stata,Stata Macros,我被困在一个棘手的数据管理问题上,这是我需要在Stata中完成的。我使用的是13.1版 我有40多个数据集需要使用每个数据集中不同的变量子集来处理。由于专有原因,我不能包含我正在进行的数据或具体分析,但会尝试包含示例和代码 我有一组数据集,a-Z。每个问题都有一组问题,Q1到Q200。我需要做一个分析,包括每个数据集上的varlist条目,排除最后几个问题(处理背景信息)。我知道此背景信息以某个问题(例如“男性/女性”)开始,尽管该问题的实际数字因数据集而异 以下是我迄今为止所做的工作: for
a-Z
。每个问题都有一组问题,Q1
到Q200
。我需要做一个分析,包括每个数据集上的varlist
条目,排除最后几个问题(处理背景信息)。我知道此背景信息以某个问题(例如“男性/女性”)开始,尽管该问题的实际数字因数据集而异
以下是我迄今为止所做的工作:
foreach X in A B C D E F {
use `X'_YEAR.dta, clear
lookfor "MALE/FEMALE"
local torename = r(varlist)
rename `torename' MF
ANALYSIS Q1 - MF
}
这是可行的,但问题是我包含了变量,这实际上是我应该开始排除的开始。我知道我可以将varlist
保存为宏,然后使用宏中的位置排除第七个变量
然而,我仍在继续前进——将其作为varlist
中的一个条目,停在变量MF
处。类似于分析Q1-(MF-1)
有人知道这样的事情是否可能吗
我在这个网站和谷歌上搜索过这个问题,但没有找到一个好的解决方案
如果这是一个我错过的简单问题,请道歉 这里有一种基于代码的方法
. sysuse auto.dta, clear
(1978 Automobile Data)
. quiet describe, varlist
. local vars `r(varlist)'
. display "vars - `vars'"
vars - make price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
. lookfor "Circle"
storage display value
variable name type format label variable label
------------------------------------------------------------------------------------------------
turn int %8.0g Turn Circle (ft.)
. local stopvar `r(varlist)'
. display "stopvar - `stopvar'"
stopvar - turn
. local myvars
. foreach var in `vars' {
2. if "`var'" == "`stopvar'" continue, break
3. local myvars `myvars' `var'
4. }
. display "myvars - `myvars'"
myvars - make price mpg rep78 headroom trunk weight length
然后只要在需要分析变量列表的地方使用“myvars”。或者,如果变量列表始终以Q1开头,则可以将循环中的局部变量更改为
local lastvar `var'
和使用
Q1-`lastvar'
查看分析变量列表。这里有一种基于代码的方法
. sysuse auto.dta, clear
(1978 Automobile Data)
. quiet describe, varlist
. local vars `r(varlist)'
. display "vars - `vars'"
vars - make price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
. lookfor "Circle"
storage display value
variable name type format label variable label
------------------------------------------------------------------------------------------------
turn int %8.0g Turn Circle (ft.)
. local stopvar `r(varlist)'
. display "stopvar - `stopvar'"
stopvar - turn
. local myvars
. foreach var in `vars' {
2. if "`var'" == "`stopvar'" continue, break
3. local myvars `myvars' `var'
4. }
. display "myvars - `myvars'"
myvars - make price mpg rep78 headroom trunk weight length
然后只要在需要分析变量列表的地方使用“myvars”。或者,如果变量列表始终以Q1开头,则可以将循环中的局部变量更改为
local lastvar `var'
和使用
Q1-`lastvar'
查看分析变量列表。这里有一种基于代码的方法
. sysuse auto.dta, clear
(1978 Automobile Data)
. quiet describe, varlist
. local vars `r(varlist)'
. display "vars - `vars'"
vars - make price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
. lookfor "Circle"
storage display value
variable name type format label variable label
------------------------------------------------------------------------------------------------
turn int %8.0g Turn Circle (ft.)
. local stopvar `r(varlist)'
. display "stopvar - `stopvar'"
stopvar - turn
. local myvars
. foreach var in `vars' {
2. if "`var'" == "`stopvar'" continue, break
3. local myvars `myvars' `var'
4. }
. display "myvars - `myvars'"
myvars - make price mpg rep78 headroom trunk weight length
然后只要在需要分析变量列表的地方使用“myvars”。或者,如果变量列表始终以Q1开头,则可以将循环中的局部变量更改为
local lastvar `var'
和使用
Q1-`lastvar'
查看分析变量列表。这里有一种基于代码的方法
. sysuse auto.dta, clear
(1978 Automobile Data)
. quiet describe, varlist
. local vars `r(varlist)'
. display "vars - `vars'"
vars - make price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
. lookfor "Circle"
storage display value
variable name type format label variable label
------------------------------------------------------------------------------------------------
turn int %8.0g Turn Circle (ft.)
. local stopvar `r(varlist)'
. display "stopvar - `stopvar'"
stopvar - turn
. local myvars
. foreach var in `vars' {
2. if "`var'" == "`stopvar'" continue, break
3. local myvars `myvars' `var'
4. }
. display "myvars - `myvars'"
myvars - make price mpg rep78 headroom trunk weight length
然后只要在需要分析变量列表的地方使用“myvars”。或者,如果变量列表始终以Q1开头,则可以将循环中的局部变量更改为
local lastvar `var'
和使用
Q1-`lastvar'
用于分析变量列表。创建一个玩具变量列表(必要时创建一个数据集),并手动显示您想要的结果。我真的不知道你所说的“分析Q1-(MF-1)”是什么意思。创建一个玩具变量列表(必要时创建一个数据集)并手工显示你想要的结果。我真的不知道你所说的“分析Q1-(MF-1)”是什么意思。创建一个玩具变量列表(必要时创建一个数据集)并手工显示你想要的结果。我真的不知道你所说的“分析Q1-(MF-1)”是什么意思。创建一个玩具变量列表(必要时创建一个数据集)并手工显示你想要的结果。我真的不知道你所说的“分析Q1-(MF-1)”是什么意思。