0

我正在使用 SPDS 4.3 上的集群数据集。我想为每个集群生成一个成员列表。我发现了两种可能性来获取我正在寻找的信息。
通过使用 PROC CONTENTS 并查看字段“Cluster members are”或使用 PROC SPDO,如下所示:

  PROC SPDO LIBRARY=P30C033;  
    CLUSTER LIST LD_LIQ_CLUS_Customer;  
  QUIT;  

在这两种情况下,我都会以报告的形式获得信息。但我想以数据集的形式获取信息。

我已经在 PROC CONTENTS 上尝试了 out= 和 out2=,但是没有得到想要的输出。
我还搜索了 PROC SPDO CLUSTER LIST 的选项,但没有结果。

提前
谢谢迈克

4

2 回答 2

1

作为任何 PROC 的通用答案,即使您不能使用 OUT= ,您也可以使用 ODS OUTPUT 来获取数据集。

ODS TRACE ON;在 proc 运行之前(和ODS TRACE OFF之后)添加。它应该在日志中为您提供一些结果,告诉您输出的名称;然后,您可以使用ODS OUTPUT来获取结果。

例如,使用 PROC CONTENTS,运行:

ods trace on;
proc contents data=sashelp.class;
run;
ods trace off;

也许你会看到这张VARIABLES桌子对你来说很有趣。所以运行:

ods output Variables=sasvars;
proc contents data=sashelp.class;
run;
ods output close;

ODS TRACE当然,如果您已经知道输出部分的名称,则不需要。

于 2013-11-13T16:04:41.343 回答
1

您可以使用 ODS OUTPUT CLUSTERLIST=,如下面的代码示例所示:

ods noresults;
ods output clusterlist=WORK.CLUSTER_MEMS;
proc spdo lib=SPDSLIB;
   cluster list CLUSTER1;
   cluster list CLUSTER2;
   /* ... */
   cluster list CLUSTERN;
quit;
ods output close;
ods results;

这允许您将一个或多个集群的成员捕获到单个数据集中。

您还可以使用 OUT= 选项捕获集群成员以分隔数据集:

proc spdo lib=SPDSLIB;
   cluster list CLUSTER1 out=CLUSTER1_MEMBERS;
   cluster list CLUSTER2 out=CLUSTER2_MEMBERS;
   /* ... */
   cluster list CLUSTERN out=CLUSTERN_MEMBERS;
quit;

有关此主题的更多信息,请参阅我最近的博客文章如何检索 SAS® 可扩展性能数据服务器库的内容

于 2020-03-10T16:21:11.930 回答