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

如何在PROC REPORT中使用数组?代码粗体样式不生效求助

问题修复与文档说明

代码修复方案

你的代码无法设置粗体的核心原因是:call define函数需要传入列名的字符串,而直接使用数组元素bvar(i)传递的是变量的当前值,而非列名,导致无法定位目标列。

修复后的完整代码:

data x;
input cat $ biga bigb smaa smab meda medb;
cards;
meow 1 1 2 3 5 5
oops 9 9 2 2 5 1
;
run;

ods html;
proc report nowd data=x;
column cat -- medb dummy;
define dummy / computed noprint;
compute dummy;
    array avar(3) biga smaa meda;
    array bvar(3) bigb smab medb;
    do i = 1 to dim(avar);
        if avar(i) ^= bvar(i) then 
            call define(vname(bvar(i)), 'style', 'style=[font_weight=bold]');
    end;
endcomp;
run;
quit;
ods html close;

关键修改:用vname(bvar(i))获取数组元素对应的变量名(即报表列名),传递给call define,实现当a组和b组变量值不同时,给对应的b列设置粗体样式。

PROC REPORT数组用法相关文档

  • SAS官方《PROC REPORT 参考文档》:在COMPUTE块章节中明确支持SAS标准数组语法,可用于批量处理变量的计算、样式设置等操作;
  • SAS支持知识库(SAS Support KB):包含大量使用数组配合PROC REPORT实现复杂报表需求的案例;
  • SAS社区(SAS Communities):PROC REPORT板块有用户分享的各类数组应用场景与实战技巧。

内容的提问来源于stack exchange,提问作者catquas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:03:23