2015-05-27 2 views
0

Я хотел бы ввести группы переменных в команду Stata, но не могу найти способ сделать это.Ввод подмножеств переменных в командах Stata

E.g. В факторном анализе с набором из 41 переменных я хотел бы исключить 5, 33 и 35, но включить остальные.

Если это будет что-то вроде: factor x1-x4, x6-x32, x34, x36-41, factors(5) pcf

+3

См. 'Help varlist'. –

ответ

1

Ваш пример вызывает факторный анализ. Давайте продолжим. Если переменные действительно по крайней мере, названных из 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.

Смежные вопросы