我正在使用 PC SAS 9.1 并且正在使用两台远程服务器,因此,我正在尝试设置我的参数和格式等;在将它们上传到每个远程服务器之前在本地。
我想将多层格式应用于 proc 摘要。我的格式部分工作,但是当我上传(或下载)格式时出现了问题。
在下面的这个例子中,我在远程会话上创建了 MultiLabel 格式。然后我创建一个简单的数据集并应用格式。
然后我对数据进行 Proc Summary,这将生成一个表格,其中表格品牌字段首先由模型格式化,然后制作,然后键入,产生一个 8 行的表格。
然后我将格式下载到本地会话并执行相同的数据集创建和汇总。运行时,Proc Summary 中仅使用格式的第一个标签(模型),这意味着我的数据集摘要只有 5 行。
RSubmit RemoteServer;
Proc Format;
Value $Brand (NotSorted MultiLabel)
/* Model */
'A' = 'Focus'
'B' = 'Astra'
'C' = 'Fiesta'
'D' = 'Corsa'
'E' = 'Fusion'
/* Make */
'A' = 'Ford'
'B' = 'Vauxhall'
'C' = 'Ford'
'D' = 'Vauxhall'
'E' = 'Ford'
/* Type */
'A' = 'Automobile'
'B' = 'Automobile'
'C' = 'Automobile'
'D' = 'Automobile'
'E' = 'Automobile';
Run;
EndRSubmit;
RSubmit RemoteServer;
Proc Download InCat = Work.Formats
OutCat = Work.Formats;
Run;
EndRSubmit;
RSubmit RemoteServer;
Data Source;
Do i = 1 To 5;
If i = 1 Then Brand = 'A';
Else If i = 2 Then Brand = 'B';
Else If i = 3 Then Brand = 'C';
Else If i = 4 Then Brand = 'D';
Else If i = 5 Then Brand = 'E';
Volume = 1;
Output;
End;
Format Brand $Brand.;
Run;
EndRSubmit;
RSubmit RemoteServer;
Proc Summary Data = Source NoPrint CompleteTypes Missing NWay;
Class Brand / MLF PreLoadFmt Order = Data;
Var Volume;
Output Out = Summary (Drop = _:)
N() = Volume;
Run;
EndRSubmit;
Data Source;
Do i = 1 To 5;
If i = 1 Then Brand = 'A';
Else If i = 2 Then Brand = 'B';
Else If i = 3 Then Brand = 'C';
Else If i = 4 Then Brand = 'D';
Else If i = 5 Then Brand = 'E';
Volume = 1;
Output;
End;
Format Brand $Brand.;
Run;
Proc Summary Data = Source NoPrint CompleteTypes Missing NWay;
Class Brand / MLF PreLoadFmt Order = Data;
Var Volume;
Output Out = Summary (Drop = _:)
N() = Volume;
Run;
当我查看每台服务器上的格式时,它显示为使用多个标签正确创建,但它不应用它们。
我试过在各种网站上查看,SUGI 等;但找不到其他遇到此问题的人。
感觉传输格式的读取出现问题,因为它看起来是正确创建的,并且当在任何服务器上创建格式时,该表将在该服务器上工作。
我基本上是在发帖,看看这里是否有人曾经遇到过这个问题,他们是否知道为什么会发生,或者如果可以采取一些措施来确保该过程能够正常运行,那就更好了。
非常感谢。