You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata中ranksum循环代码修改求助:添加分组观测数与表头

解决Stata ranksum循环输出表头和样本量的问题

我来帮你搞定这个问题!你遇到的两个核心问题其实很容易解决:一是Stata返回值的命名格式,二是表头的格式化输出。

问题分析

  1. 样本量无法输出:你写的r(N 1)和r(N 2)是错误的——Stata里ranksum命令返回的两组样本量是r(N1)和r(N2)(没有空格),这就是你读不到数值的原因。
  2. 表头添加:只需要在循环开始前用display命令输出格式化的表头,再配合横线分隔,就能让结果更清晰。

修改后的完整代码

* 先输出表头和分隔线
di "{hline 70}"
di "{align center}Variable{col 22}P-Value{col 32}PValue2{col 42}Porder{col 52}Obs. Group 1{col 62}Obs. Group 2"
di "{hline 70}"

* 循环处理每个变量
foreach v of var BVCAlogMAR AvgSSI L1DensityWholeImage { 
    quietly ranksum `v', by(G6PDcarente) porder 
    scalar pval = 2*normprob(-abs(r(z))) 
    di "`v'{col 22}" %05.3f pval "{col 32}" %6.4e pval "{col 42}" %05.3f r(porder) /// 
        "{col 52}" %05.0f r(N1) "{col 62}" %05.0f r(N2) 
}

代码说明

  • 表头部分:用{hline}添加横线分隔,{align center}让变量名居中,{col X}指定列的位置,确保表头和后续内容对齐。
  • 样本量修正:把r(N 1)改为r(N1),r(N 2)改为r(N2),就能正确读取两组的观测数了。
  • 格式优化:样本量用%05.0f(整数格式)比小数格式更合理,你可以根据自己的需求调整格式符。
  • quietly命令:保持quietly ranksum可以避免Stata每次输出默认的秩和检验结果,只显示我们自定义的表格。

这样运行后,你就能得到一个格式整齐、包含表头和样本量的结果输出啦!

内容的提问来源于stack exchange,提问作者Giuseppe D'Amico Ricci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:46:18