在 Stata 命令中输入变量子集
Entering subsets of variables in Stata commands
我想在 Stata 命令中输入变量组,但找不到这样做的方法。
例如在因子分析中,有一组 41 个变量,我想排除第 5、33 和 35,但包括其余的。
应该是这样的:factor x1-x4, x6-x32, x34, x36-41, factors(5) pcf
您的示例调用了因子分析。让我们坚持下去。如果您的变量确实至少是那些从 x1
到 x41
命名的变量,那么
factor x1-x4 x6-x32 x34 x36-x41
可能是合法的。请注意 (1) 逗号是 not; (2) 最后的 varlist 已更正,因为 x36-41
永远不可能是合法的 varlist (因为 41
永远不可能是合法的 varname); (3) 当两个或多个变量名用连字符连接时,这里x6-x32
和x36-x41
,这样的varlist表示当前变量的块数据集顺序,不一定是名称以 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 命令中输入变量组,但找不到这样做的方法。
例如在因子分析中,有一组 41 个变量,我想排除第 5、33 和 35,但包括其余的。
应该是这样的:factor x1-x4, x6-x32, x34, x36-41, factors(5) pcf
您的示例调用了因子分析。让我们坚持下去。如果您的变量确实至少是那些从 x1
到 x41
命名的变量,那么
factor x1-x4 x6-x32 x34 x36-x41
可能是合法的。请注意 (1) 逗号是 not; (2) 最后的 varlist 已更正,因为 x36-41
永远不可能是合法的 varlist (因为 41
永远不可能是合法的 varname); (3) 当两个或多个变量名用连字符连接时,这里x6-x32
和x36-x41
,这样的varlist表示当前变量的块数据集顺序,不一定是名称以 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
。