从本地宏列表创建一个变量列表(findname)
create a variable list from local macro list (findname)
我想在命令中使用局部宏中的变量列表,例如:
local a int1 int2 num1 num2 bin1 bin2 ...
local b int3 int4 bin3 num3 ...
这里的变量num*
int*
和bin*
分别是数值、整数和二进制。
我想 运行 对局部 a' and
b' 中的变量进行 foreach
循环,但仅限那些整数值的变量,即 int1, int2, int3
, ...
为此,我使用 Nick Cox 创建的 findname
命令来查找整数值的变量,将相应变量名称的列表保存在局部宏中。但我不想 运行 它用于数据集中的所有变量,而只用于变量的子集(在局部变量中指定 a
、b
等),然后使用列表在随后的命令中。
所以对于局部 a' and
b' 中的整数变量列表是局部 a_int' and
b_int',我想使用如下:
foreach var of varlist `a_int' `b_int'{
whatever command
}
如果我没理解错的话,您需要存储在本地宏中的两个列表的交集。为此,您可以使用宏扩展函数来操作列表:请参阅 help macrolists
.
// Setup
local a x1 x2 x3 x4 x5
local b x4 x5 x6 x7 x8
local int x2 x3 x6
// Get intersection of variable lists and integer list
local a_int : list a & int
local b_int : list b & int
// Put a_int and b_int together and drop possible duplicates
local ab_int `a_int' `b_int'
local ab_int_uniq : list uniq ab_int
// Do something
foreach var of varlist `ab_int_uniq' {
* do something
}
我想在命令中使用局部宏中的变量列表,例如:
local a int1 int2 num1 num2 bin1 bin2 ...
local b int3 int4 bin3 num3 ...
这里的变量num*
int*
和bin*
分别是数值、整数和二进制。
我想 运行 对局部 a' and
b' 中的变量进行 foreach
循环,但仅限那些整数值的变量,即 int1, int2, int3
, ...
为此,我使用 Nick Cox 创建的 findname
命令来查找整数值的变量,将相应变量名称的列表保存在局部宏中。但我不想 运行 它用于数据集中的所有变量,而只用于变量的子集(在局部变量中指定 a
、b
等),然后使用列表在随后的命令中。
所以对于局部 a' and
b' 中的整数变量列表是局部 a_int' and
b_int',我想使用如下:
foreach var of varlist `a_int' `b_int'{
whatever command
}
如果我没理解错的话,您需要存储在本地宏中的两个列表的交集。为此,您可以使用宏扩展函数来操作列表:请参阅 help macrolists
.
// Setup
local a x1 x2 x3 x4 x5
local b x4 x5 x6 x7 x8
local int x2 x3 x6
// Get intersection of variable lists and integer list
local a_int : list a & int
local b_int : list b & int
// Put a_int and b_int together and drop possible duplicates
local ab_int `a_int' `b_int'
local ab_int_uniq : list uniq ab_int
// Do something
foreach var of varlist `ab_int_uniq' {
* do something
}