Local 基于其他本地数据的Stata本地数据
我尝试使用local,其价值与先前使用local的价值相同。例如:我想定义“final”,并希望它包含“var1 var2”。但是,我想首先定义“temp”,并在final的定义中重用它的内容。 以下是我尝试过的: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 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,但即使如此,您仍然无法准确解释您所关心的问题。问题是右引号的位置。“。很有趣,所以问题是双引号