Stata 17中tables collect命令如何将置信区间合并至单个单元格?
Stata 17 tables collect 合并置信区间到单个单元格的解决方案
一、Stata 内的布局变通方案
方法1:自定义统计量直接生成带置信区间的内容
先定义包含系数和置信区间的自定义统计量,再在表格中调用:
* 定义适配回归分析的自定义统计量 program define coef_with_ci args varname local coef = string(_b[`varname'], "%9.3f") // 系数格式化为3位小数 local cilow = string(_ci_low[`varname'], "%9.3f") local cihigh = string(_ci_high[`varname'], "%9.3f") return local result = "`coef' (`cilow', `cihigh')" end * 将自定义统计量注册到collect collect define stat coef_with_ci, label("系数(95%置信区间)") * 生成表格并调用该统计量 sysuse auto, clear regress price mpg weight table, stat(coef_with_ci mpg) stat(coef_with_ci weight)
方法2:生成多列后合并单元格内容
先生成包含系数、置信区间上下限的表格,再通过collect modify合并内容并删除多余列:
sysuse auto, clear regress price mpg weight * 创建包含系数、置信区间上下限的基础表格 collect create mytable, replace collect add stat(coef) stat(ci_low) stat(ci_high) * 将置信区间拼接到系数单元格中 collect modify cell stat=coef: set value = value + " (" + _cell[stat=ci_low] + ", " + _cell[stat=ci_high] + ")" * 删除多余的置信区间列 collect drop stat=ci_low stat=ci_high * 直接导出到Word(已合并为单列) collect export mytable.docx, replace
二、Word 快速合并方案(适用于已导出分列为系数、下限、上限的表格)
如果已经导出拆分列的表格,可通过以下步骤快速合并:
- 新增一列作为合并结果列(例如系数在B列、下限C列、上限D列,新增E列)
- 在E2单元格输入公式:
=B2 & " (" & C2 & ", " & D2 & ")",按下回车后下拉填充整列 - 选中E列右键复制,再选中B列右键选择「粘贴选项」→「值」
- 删除C、D、E列,完成合并
也可通过查找替换批量处理:
- 选中系数列所有单元格,按
Ctrl+H打开查找替换,查找内容留空,替换为^& ((保留原系数并添加左括号) - 选中下限列所有单元格,复制粘贴到系数列对应单元格末尾,选中下限列内容替换为
, - 选中上限列所有单元格,复制粘贴到系数列对应单元格末尾,选中上限列内容替换为
) - 删除下限、上限列
内容的提问来源于stack exchange,提问作者Anis
相关产品推荐
相关产品推荐

