Stata宏复合引号使用难题:带空格字符串列表构建方法咨询
Stata复合引号宏存储含空格字符串列表的解决方案
核心错误原因
你之前的写法没有在赋值时强制保留带引号元素之间的空格,Stata解析时会将相邻元素的闭合/开口引号拼接,导致元素边界消失、输出异常。
正确使用方法
1. 基础定义格式
定义时外层套一层复合引号,每个独立字符串块用复合引号包裹,元素之间主动留空格:
local test `"`"a"' `"b"'"' * 验证输出 di `"`test'"' * 输出:"a" "b"
2. 存储包含空格的字符串列表
对于带空格的字符串块,完全复用上述规则即可:
local set1 `"`"name with space"' `"nospace"'"' * 验证输出 di `"`set1'"' * 输出:"name with space" "nospace"
3. 迭代构建宏(适配矩阵行命名场景)
循环添加元素时直接在原有宏后追加新的带引号元素即可:
* 初始化空宏 local mat_rownames "" * 迭代添加行名示例 foreach name in "工业部门" "服务业部门" 农业 "其他行业部门" { local mat_rownames `"`mat_rownames' `"`name'"' "' } * 直接用于矩阵行命名 matrix rownames your_matrix = `mat_rownames'
内容的提问来源于stack exchange,提问作者PaulB
相关产品推荐
相关产品推荐

