Пример, который работает:
// example data
sysuse auto, clear
// what you want
local first weight
local second `first' mpg
// example use of local second
regress price `second'
Редактировать
Чтобы ответить на ваш комментарий:
Да, ваша проблема - двойные кавычки. Однако это не означает, что использование двойных кавычек автоматически приведет к проблемам. Например, это будет работать:
// example data
sysuse auto, clear
// what you want
local first "weight"
local second "mpg `first'"
// example use of local second
regress price `second'
Двойные кавычки здесь интерпретируются как разделители строк, поэтому они будут удалены. Когда local first
ссылается (удаляется) в local second "mpg `first'"
, макроподстановка будет вставлять weight
, а не "weight"
. Впоследствии, когда local second
ссылается (раз)на regress ...
, макроподстановка приводит к mpg weight
, а не "mpg weight"
. Так что это все юридический синтаксис.
Ваш пример содержит недопустимый синтаксис. Вы ограничиваете первую часть двойными кавычками, а затем продолжаете с другой частью:
`temp'
Это считается незаконным.
Stata не возражает, если мы опустим двойные кавычки в операторе local
, поэтому мой первый пример работает. См. [U] 18.3.4 Макросы и выражения.
См. также http://www.stata.com/statalist/archive/2009-01/msg00282.html и help quotes
.
person
Roberto Ferrer
schedule
01.10.2014
"
. - person Nick Cox   schedule 01.10.2014