Local 基于其他本地数据的Stata本地数据

Local 基于其他本地数据的Stata本地数据,local,stata,Local,Stata,我尝试使用local,其价值与先前使用local的价值相同。例如:我想定义“final”,并希望它包含“var1 var2”。但是,我想首先定义“temp”,并在final的定义中重用它的内容。 以下是我尝试过的: local temp "var2" local final "var1 " `temp' 有人能告诉我我做错了什么吗?一个有效的例子: // example data sysuse auto, clear // what you want local first weight

我尝试使用local,其价值与先前使用local的价值相同。例如:我想定义“final”,并希望它包含“var1 var2”。但是,我想首先定义“temp”,并在final的定义中重用它的内容。 以下是我尝试过的:

local temp "var2"

local final "var1 " `temp'
有人能告诉我我做错了什么吗?

一个有效的例子:

// 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'”
中引用
local first
时,宏替换将插入
weight
,而不是
“weight”
。之后,当
回归…
中引用了
本地秒数
时,宏替换将导致
mpg重量
,而不是
mpg重量
。所以这都是合法的语法

您的示例包含无效语法。用双引号分隔第一块,然后继续另一块:

`temp'
这被认为是非法的

Stata不介意我们省略
local
语句中的双引号,这就是我的第一个示例起作用的原因。请参见[U]18.3.4宏和表达式


另请参见和
帮助引号

您没有按您所说的做。要重用本地文件的内容,您必须引用该本地文件。在示例中,我忘记将“ratiovars”重命名为“temp”,sorryOK,但即使如此,您仍然无法准确解释您所关心的问题。问题是右引号的位置。“。很有趣,所以问题是双引号