限制SAS ODS输出中的观察数

限制SAS ODS输出中的观察数,sas,sas-macro,sas-ods,Sas,Sas Macro,Sas Ods,我试图限制ODS输出表中包含的观察数。 我的尝试非常基本: OPTIONS NODATE number pageno=1 rightmargin=0.25in leftmargin=0.25in topmargin=0.4in bottommargin=0.4in; options sysprintfont=("SAS Monospace" normal regular 8 ALL) orientation=landscape; ODS LISTING CLOSE; ODS NORESULTS;

我试图限制ODS输出表中包含的观察数。 我的尝试非常基本:

OPTIONS NODATE number pageno=1 rightmargin=0.25in leftmargin=0.25in topmargin=0.4in bottommargin=0.4in;
options sysprintfont=("SAS Monospace" normal regular 8 ALL) orientation=landscape;
ODS LISTING CLOSE;
ODS NORESULTS;
ods TAGSETS.EXCELXP PATH="C:\TEMP" FILE= "&Place._RequiredFlaggedRecords.XML" STYLE=NORMALPRINTER;
/*Sets number of observations allowed per ODS*/
%let obs=100;

ODS TAGSETS.EXCELXP OPTIONS (EMBEDDED_TITLES='YES' EMBEDDED_FOOTNOTES='YES' SHEET_NAME='Outdated');
proc print data=&Place (obs=&obs) (rename = (CREATE_DATE = DATE_PROCESSED EARLIEST_DATE_TIME=VISIT_DATE_TIME EARLIEST_DATE=VISIT_DATE)) noobs;
        var
            DATEDIFF
            DATE_PROCESSED
            VISIT_DATE
            VISIT_DATE_TIME
                            ;
                WHERE DATEDIFF >=60 ;
        title1 j=l "Outdated Records " ;
        title2 j=l 'This page reflects the records which were received more than 60 days following';
RUN;
日志文件返回:

NOTE: Line generated by the macro variable "OBS".
1      100
       ---
       22
       76

ERROR 22-322: Expecting a quoted string.

ERROR 76-322: Syntax error, statement will be ignored.

NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.09 seconds
      cpu time            0.01 seconds
尝试使用
%eval
将100设为数字而不是字符。还将&obs替换为100,而不是使用宏。两者的结果与上述相同


任何帮助都将不胜感激

您的问题很可能是您有第二组参数。这很好:

ods html file="c:\temp\blah.html" path="";
proc print data=sashelp.class(obs=10 rename=name=namer);
run;
ods html close;
您的错误与未将
obs=10
放在重命名后的参数中一致。如果您使用上面的方法(两组参数),则会出现不同的错误。将所有数据集选项放在一组参数中


需要明确的是,这不是一个与ODS相关的选项。这是一个数据集选项,仅此而已。宏变量没有“类型”,因此
%eval
在这里是不相关的。

如上所述,我尝试过其他方法,但没有效果。我所有的研究都表明这三种方法都应该有效,但没有一种有效。谢谢你的帮助!我现在正试着合并帕伦夫妇。但是,根据SAS支持和帮助文件,宏变量始终包含字符数据。宏变量始终包含文本。它们没有类型的概念-没有“数字”或“字符”的概念。因此,您的
%eval
没有执行任何操作:
%eval
仍然返回文本<代码>%eval告诉SAS将文本计算为数字,以便对其进行计算-然后将结果返回为文本。抱歉,在此新建,并在上一页中过早地按enter键!嗯,如果帮助文件中提到这一点,那就太好了!会帮我省点时间的!这解决了问题!谢谢你,乔!