在STATA命令中输入变量子集 [英] Entering subsets of variables in Stata commands

查看:13
本文介绍了在STATA命令中输入变量子集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望在Stata命令中输入变量组,但找不到这样做的方法。

例如,在一个由41个变量组成的因子分析中,我想排除第5、33和第35个变量,但包括其余变量。

应该是这样的:factor x1-x4, x6-x32, x34, x36-41, factors(5) pcf

推荐答案

您的示例调用了因子分析。让我们继续下去。如果您的变量确实至少是x1x41中指定的变量,则

 factor x1-x4 x6-x32 x34 x36-x41 

可能合法。请注意,(1)不包括;(2)已更正最后varlist,因为x36-41永远不会是合法的varlist(因为41永远不会是合法的varname);以及(3)当两个或多个变量名称用连字符连接时,在这里x6-x32x36-x41,这样的变量列表表示当前数据集顺序的变量块,而不一定是名称以x开头并带有隐含后缀的所有变量,例如36(1)41中。因此,如果变量的名称按该顺序排列,x36-x41可能表示x36 frog toad x41

寓意很简单:将您的变量按顺序排列,使管理和分析变得简单且易于思考。order命令提供了以编程方式更改变量顺序的最简单方法。

从任意varlist中按顺序删除变量j这个更一般的问题看起来有点人为,但现在开始。假设我们在本地宏中有一个变量名列表(实际上是任何名称)。tokenize将它们逐个映射到编号为1向上的本地宏,之后我们可以删除任何我们喜欢的宏。在下面的示例中,mac li的输出被编辑以删除与此示例无关的内容,这可能会相当多。

. local varlist foo bar bazz frog toad newt whatever

. tokenize `varlist'

. mac li
_7:             whatever
_6:             newt
_5:             toad
_4:             frog
_3:             bazz
_2:             bar
_1:             foo
_varlist:       foo bar bazz frog toad newt whatever

. foreach j in 1 3 5 {
  2. local varlist : list varlist - `j'
  }

. mac li
_varlist:       bar frog newt whatever
_7:             whatever
_6:             newt
_5:             toad
_4:             frog
_3:             bazz
_2:             bar
_1:             foo
有关操作列表的其他方法,请参阅help macrolists

这篇关于在STATA命令中输入变量子集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆