如何结束全球名称?
问题描述:
我试图从其他的全局变量名组成一个新的全局变量一样如何结束全球名称?
global partA 1234
global partB 5678
global fullname $partA_$partB
然而,当我这样做下划线被解释为全球第一个名称的一部分。我目前的解决方案是创建一个从partA
一个地方,然后做
global fullname `partA'_$partB
我如何可以连接前两个全局成一个新的全球使用,而无需创建这个临时的地方把它们分开下划线(或其它字符)?
答
可以在{}
封闭global
名,$
后,像这样:
global parta 1234
global partb 5678
global fullincorrect $parta_$partb
di "$fullincorrect"
global partc 1234
global partd 5678
global fullcorrect ${partc}_${partd}
di "$fullcorrect"
,结果
. di "$fullincorrect"
5678
. di "$fullcorrect"
1234_5678
答
这将工作太:
. global partA 1234
. global partB 5678
. global fullname = "$partA" + "_" + "$partB"
. di "$fullname"
1234_5678
我不要特别推荐它,但它是一个解决方案上。其核心思想是,全球宏持有字符串和+
符连接字符串。关键的细节是引号不能是宏名称的一部分。这只是因为下划线可以成为这个问题的一个宏名称的一部分。
“全局变量”是这里严格的全球宏观一个语法错误。用Stata术语来说,变量是数据集的一列,宏不是变量。当然,从许多编程语言的角度来看,一个Stata的宏看起来像一个变量,就像一个变量,但是这就是术语。更多内容请访问http://www.stata.com/statalist/archive/2008-08/msg01258.html –