Stata使用list命令时如何将指定变量的变量名作为值输出
Stata实现指定格式list输出的方法
- 方案1:生成临时字符串列后调用list命令(操作最简单,适配原生list的所有筛选、排序逻辑)
你只需要提前生成一列存储你要展示的变量名字符串,再调用list即可,示例代码:
* 先生成存储var2变量名的var3列,长度根据你的变量名长度调整 gen str20 var3 = "var2" * 按你的需求加筛选条件输出,divider参数会自动添加竖线分隔,noobs可以隐藏观测序号 list var1 var2 var3 if 你要的判断条件, divider noobs
输出结果会自动匹配你要的value_of_var1 | value_of_var2 | variable_name_var2格式。
如果var3的内容是动态存储在本地宏里的,比如你提前把要展示的变量名存在了target_var宏中,只要把生成var3的行改成gen str20 var3 = "target_var'"`即可。
- 方案2:自定义循环输出(不需要改动数据集,灵活度更高)
如果你不想在数据集里新增临时变量,可以自己写循环格式化输出,示例代码:
* 存储var2的变量名到宏,对应你需求里var3的内容 local target_var "var2" * 输出表头 disp "var1 | `target_var' | var3" disp "---------------------------" * 逐行遍历符合条件的观测输出 forvalues i = 1/`=_N' { * 替换为你要的筛选条件 if 你的判断条件[`i'] { disp var1[`i'] " | " `target_var'[`i'] " | " "`target_var'" } }
注意:如果需要不同观测的var3列显示不同的变量名,只需要调整var3的生成逻辑或者循环里的输出逻辑即可,Stata对字符串操作的支持完全可以覆盖这类需求。
内容的提问来源于stack exchange,提问作者InPanic
相关产品推荐
相关产品推荐

