【发布时间】:2015-10-22 08:48:10
【问题描述】:
假设我有 60 个变量,没有一个具有相似的命名模式。我想为我存储在本地的所有变量分配标签。比如
local mylabels "dog cat bird"
但是,我正在为循环的确切表达而苦苦挣扎。我是否必须全局存储我的变量范围,然后使用 foreach?还是我使用 forvalues?
编辑:我指的是变量标签。我设法创建了一个循环,类似于这里使用的方法http://www.stata.com/support/faqs/programming/looping-over-parallel-lists/。但是我遇到了一个更困难的问题:我的变量没有特定的命名模式,标签有特殊字符(空格、逗号、%-符号),这是我的循环不起作用的地方。
一些示例数据(请原谅随机性):
gen Apples_ts_sum = .
gen Pears_avg_1y = .
gen Bananas_max_2y = .
还有一些示例标签:
“苹果的时间序列,总和,%”“梨的平均值,超过 1 年” “最多香蕉,超过 2 年”。
我遇到了 Nick Cox 的这个条目:http://www.stata.com/statalist/archive/2012-10/msg00285.html 并尝试应用提到的括号方法,如下所示:
local mylabels `" "Time series of apples, sum, %" "Average of pears, over 1 year" "Maximum of bananas, over 2 years" "'
但无法让它工作。
【问题讨论】:
-
标签意味着价值标签?变量标签?可能是第二个,但如果您不显示代码,那么最低限度的期望是显示您希望数据的外观。
-
感谢您澄清这一点的编辑。一般来说,将所有变量标签放入一个本地宏的方法会引起再次将它们取出的问题,正如您所发现的那样。它可以很容易地以交互方式使用
varm,或者如果您更喜欢更直接的可重复研究来创建一个定义变量标签的do-file。