Ваш пример вызывает факторный анализ. Давайте продолжим. Если переменные действительно по крайней мере, названных из x1
через x41
затем
factor x1-x4 x6-x32 x34 x36-x41
может быть законным. Заметим, что (1) запятыми являются не в комплекте; (2) последний список переменных была исправлена, поскольку x36-41
никогда не может быть законным список переменных (как 41
никогда не может быть законным VarName); и (3) когда два или более имени переменных соединены с дефисом, здесь x6-x32
и x36-x41
, такой список указывает блок переменных в текущем порядке набора данных, не обязательно все переменные, имена которых начинаются с x
с подразумеваемыми суффиксами, например в 36 (1) 41. Таким образом, x36-x41
может означать x36 frog toad x41
, если у вас есть переменные с этими именами в этом порядке.
Мораль проста: иметь переменные в порядке, который упрощает и упрощает управление и анализ. Команда order
обеспечивает самый простой способ программным образом изменить программный порядок.
Более общая задача удаления переменной 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
.
См. 'Help varlist'. –