微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SAS Enterprise Guide - 根据条件将临时“WORK”表导出到同一工作簿中的多个工作表中

如何解决SAS Enterprise Guide - 根据条件将临时“WORK”表导出到同一工作簿中的多个工作表中

搜索了又搜索,但似乎找不到解决方案。

我使用的是 8.2 Update 4 (8.2.4.1261)(32 位)。

有人可以帮我将表格导出到包含多张工作表的 Excel 文件中吗?

示例:表格包含美国职业运动队的列表(以及他们所在的城市/昵称和联赛)。每个标签将按联赛(NBA、MLB、NFL、NHL、MLS)分开。我该怎么办?

我还想将当前日期添加输出 Excel 文件名中。从我读过的内容来看,我可以使用 sysdate 创建一个变量。只是不确定如何将其合并到代码中。

解决方法

  • 每个工作表名称都基于一个组。
    • 在 SAS 中,我们使用 BY 语句来指定组成一个组的变量——在您的情况下,它是一个变量 league
  • BY 语句使特殊令牌在输出期间可用,#BYVAR<n>#BYVAL<n>
    • 您希望 league 的值在输出过程中很重要(工作表名称),因此 #BYVAL1
  • ODS EXCEL 工作表名称构造在 OPTIONS 选项中指定。您可以在选项中使用 BY 令牌。
    • 你想要ODS EXCEL ... OPTIONS (sheet_name="#BYVAL1") ...;
  • 输出过程中的 BY 语句会产生额外的行 <BYVAR>=<BYVAL>,它在 Excel 输出中将成为噪音
    • OPTIONS NOBYLINE; 防止噪音

示例:

ods excel file='output.xlsx' options(sheet_name="#BYVAL1");

options nobyline;

proc print noobs data=sashelp.cars;
  by make;
run;

ods excel close;

生产

enter image description here

更多

如果您希望 BY 变量出现在 PROC PRINT 输出中,请使用 VAR _ALL_; 语句,或明确列出所需的列。

如果您需要导入和合并在 Excel 中编辑过的数据,或者如果您要制作各种图表等,将 BY 变量添加到输出将使事情变得更容易。实际上,如果您要在优秀。 (Proc ODS EXCELTABULATE 可以做数据透视表可以做的很大一部分。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。