1

我正在运行“proc mean”命令来打印以下两个变量的摘要统计信息:var1 和 var2。我正在即时创建乳胶,并在一个较大的文档中挑选乳胶,并为表格提供适当的标题以及所有这些。如果我在 PROC MEANS 命令的 'var' 部分中只有一个变量,它会完美运行。我什至可以在那里有许多类语句并且它有效。但是,如果我在“var”语句中添加另一个变量,则乳胶输出中缺少回车符。

这是我得到的输出:

var1    & 1.0    & 1.0    & 1.0    & 1.0    & 1.0    & 
var2 & 1.0    & 1.0    & 1.0    & -1.0.00    & 1.0   \tabularnewline

这是我想要的输出:

var1 & 1.0    & 1.0    & 1.0    & 1.0    & 1.0     \tabularnewline
var2 & 1.0    & 1.0    & 1.0    & 1.0    & 1.0   \tabularnewline

我正在使用以下 sas 命令创建表(在 SAS 结果查看器中完美显示)。

ods tagsets.customMinimal file="summaryPanelA_data.tex" (notop nobot) newfile=table;
proc means data=phd.formatted mean median stddev min max maxdec=2;
var stake payout;
run;
ods tagsets.customMinimal close;

我已经尝试将所有原始标签集用于乳胶输出,即 Latex、SimpleLatex 和 TablesOnlyLatex,但它仍然不打印行尾字符。

这是我的客户标签集的内容:

*START REGION: Running this creates a new template;
Proc template;
define tagset Tagsets.customMinimal;
define event byline;end;
define event proc_title;end;
define event note;end;
define event Error;end;
define event Warn;end;
define event Fatal;end;
define event system_footer;end;
define event leaf;end;
define event proc_branch;end;
define event branch;end;
define event pagebreak;end;
define event system_title;end;
define event table;end;
define event table_head;end;
define event colspecs;end;
define event colspec_entry;end;
define event row;

        break /if ^contains( $HTMLCLASS, "data");
        put "                " NL "  " /if ^exists( $colspan);
    finish:     
        break /if cmp( $sascaption, "true");
        break /if contains( HTMLCLASS, "data");
        break /if ^exists($hasdata);
        put "\tabularnewline" NL /if ^exists( $colspan);
        unset $hasdata;
end;

define event data;
    start:
        put VALUE /if cmp( $sascaption, "true");

        break /if cmp( $sascaption, "true");
        break /if ^contains( HTMLCLASS, "data");
        break /if exists( $colspan) | exists ( $cell_align );

        put %nrstr(" & ") /if ^cmp( COLSTART, "1");

        unset $colspan;
        set $colspan colspan;     
        set $hasdata '1';    

        /*put tranwrd(VALUE,"-","$-$") /if contains( HTMLCLASS, "data"); */
        put tranwrd(VALUE,"-","-") /if contains( HTMLCLASS, "data");
        put VALUE /if ^contains( HTMLCLASS, "data");
        put "   ";

    finish:
        break /if ^contains( HTMLCLASS, "data");
        break /if cmp( $sascaption, "true");
        break /if exists( $colspan) | exists ( $cell_align );
end;

parent = tagsets.simplelatex;
end;

退出;

4

1 回答 1

1

我相信这是 PROC MEANS ODS 模板的问题。如果您有 9.3,则可以使用该STACKODSOUTPUT选项(请参阅文档),但对于 9.2 或更早版本,我认为没有简单的解决方案。在这种情况下,您最好的选择可能是将 PROC MEANS 放入数据集,对其进行操作,然后 PROC PRINT 将其打印到您的 LaTeX 解决方案中。

于 2013-07-23T14:19:08.180 回答