【问题标题】:SAS Proc Print - No OutputSAS Proc 打印 - 无输出
【发布时间】:2018-09-08 02:12:29
【问题描述】:

我很沮丧。我什至无法让 proc print 工作。我已经尝试了很多东西。我在结果查看器中看不到表格。我的日志说文件已被读取,我应该看到结果。我试过关闭和打开 ods 并保存到工作文件夹或保存到我自己的文件夹。我试过切换到列表输出。现在,我只想运行我从以下位置获得的代码:https://support.sas.com/resources/papers/proceedings11/270-2011.pdf

data energy;
length state $2;
input region division state $ type expenditures @@;
datalines;
1 1 ME 1 708 1 1 ME 2 379 1 1 NH 1 597 1 1 NH 2 301
1 1 VT 1 353 1 1 VT 2 188 1 1 MA 1 3264 1 1 MA 2 2498
1 1 RI 1 531 1 1 RI 2 358 1 1 CT 1 2024 1 1 CT 2 1405
1 2 NY 1 8786 1 2 NY 2 7825 1 2 NJ 1 4115 1 2 NJ 2 3558
1 2 PA 1 6478 1 2 PA 2 3695 4 3 MT 1 322 4 3 MT 2 232
4 3 ID 1 392 4 3 ID 2 298 4 3 WY 1 194 4 3 WY 2 184
4 3 CO 1 1215 4 3 CO 2 1173 4 3 NM 1 545 4 3 NM 2 578
4 3 AZ 1 1694 4 3 AZ 2 1448 4 3 UT 1 621 4 3 UT 2 438
4 3 NV 1 493 4 3 NV 2 378 4 4 WA 1 1680 4 4 WA 2 1122
4 4 OR 1 1014 4 4 OR 2 756 4 4 CA 1 10643 4 4 CA 2 10114
4 4 AK 1 349 4 4 AK 2 329 4 4 HI 1 273 4 4 HI 2 298
;

proc sort data=energy out=energy_report;
by region division type;
run;

proc format;
value regfmt 1='Northeast'
2='South'
3='Midwest'
4='West';
value divfmt 1='New England'
2='Middle Atlantic'
3='Mountain'
4='Pacific';
value usetype 1='Residential Customers'
2='Business Customers';
run;


ods html file='my_report.html';
proc print data=energy_report;
run;
ods html close;

我的日志没有显示错误:

NOTE: Writing HTML Body file: my_report.html
1582 proc print data=energy_report;
1583 run;

NOTE: There were 44 observations read from the data set WORK.ENERGY_REPORT.
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.04 seconds
cpu time 0.00 seconds

当我进入我的临时文件时,我可以打开“energy”和“energy_report”数据集,我可以查看所有数据。为什么我看不到打印输出?我不确定我错过了什么。我检查了输出窗口、结果查看器窗口和所有生成的 html 文件。他们都是空白的。

谢谢

【问题讨论】:

  • 你找到文件my_report.html了吗?您使用的是什么版本的 SAS 以及什么类型(EG、Studio、PC)。我会检查 my_report.html,但有更简单的方法,所以你在做一些奇怪的事情或者它的设置很奇怪。
  • 快速修复,将文件路径更改为您知道完整文件路径的位置,检查文件以获取结果。

标签: sas proc


【解决方案1】:

这在很大程度上取决于您的设置,但我会启用 HTML 和列表输出,然后检查输出。

ods listing;
ods html;
proc print data=sashelp.class;
run;

如果您使用的是 EG,则结果应该在流程中。如果是 Studio,在结果选项卡中,如果是 SAS Base,单击结果并在必要时打开。 有一个名为“将结果显示为已生成”的选项,它可能由于某种原因在您的安装中被设置为关闭。我经常这样设置,因为我经常一次生成很多文件(HTML/XLSX)并且不希望它们自动打开。

【讨论】:

  • 不是“ods close Listing”吗?
  • 谢谢瑞萨。我玩弄了所有这些设置。我打开和关闭了 ods 列表(内联和使用设置)。我已经尝试过自动生成结果,将 html 文件保存到工作文件夹而不是我自己的本地文件夹,但结果查看器甚至不会打开,选项窗口什么也没有显示。在意识到我也可以访问 SAS Studio 之后,我最终在今天早上放弃了。在 SAS 工作室中一切都运行良好,所以我真的不知道我在 EG 上做错了什么。我确定这个错误已经结束了,哈哈。
  • SAS Base 不是 EG***
  • 哇,我刚刚重新打开了 SAS Base 并运行了文件,一切正常。我想我永远不会知道为什么。我昨天花了几个小时玩设置。谢谢大家。
  • 您可能不小心打开了 noresults 或所有目的地。不过很高兴它现在可以工作了。
【解决方案2】:

在您打印到 my_report.html 的地方,该文件可能会尝试转到 C:\my_report.html - 改为输入完整的文件路径,并在完成后检查。

【讨论】:

    【解决方案3】:

    改变

    ods html file='my_report.html';
    proc print data=energy_report;
    run;
    ods html close;
    

    ods html file="&path./my_report4.html";
    proc print data=energy_report;
    run;
    ods html close;
    

    其中&path 包含将创建文件的路径。

    重要的是:使用 " 而不是 '。 双引号代替引号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      相关资源
      最近更新 更多