Formatting SAS多层格式在上载/下载时不工作
我在PC SAS 9.1上工作,在两个远程服务器上工作,因此,我正在尝试设置我的参数和格式等;在将它们上载到每个远程服务器之前,请先在本地 我想对过程摘要应用多层格式。我已经让格式部分工作,但当我上传(或下载)格式时,出现了一些问题 在下面的示例中,我正在远程会话上创建多标签格式。然后我创建一个简单的数据集并应用该格式 然后,我对数据进行Proc汇总,生成一个表格,表格中的表格品牌字段首先由模型进行了汇总,然后生成,然后键入,最后生成一个8行的表格 然后,我将格式下载到本地会话,并执行相同的数据集创建和汇总。运行此操作时,Proc摘要中仅使用格式的第一个标签(模型),这意味着我的数据集摘要只有5行Formatting SAS多层格式在上载/下载时不工作,formatting,sas,Formatting,Sas,我在PC SAS 9.1上工作,在两个远程服务器上工作,因此,我正在尝试设置我的参数和格式等;在将它们上载到每个远程服务器之前,请先在本地 我想对过程摘要应用多层格式。我已经让格式部分工作,但当我上传(或下载)格式时,出现了一些问题 在下面的示例中,我正在远程会话上创建多标签格式。然后我创建一个简单的数据集并应用该格式 然后,我对数据进行Proc汇总,生成一个表格,表格中的表格品牌字段首先由模型进行了汇总,然后生成,然后键入,最后生成一个8行的表格 然后,我将格式下载到本地会话,并执行相同的数据
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等;但是找不到其他遇到此问题的人
读取传输的格式时感觉有点不对劲,因为它看起来是正确创建的,当在任何服务器上创建格式时,表将在该服务器上工作
我发帖主要是想看看这里的任何人以前是否遇到过这个问题,他们是否知道为什么会发生这种情况,或者更好的是,是否可以采取一些措施来确保这个过程能够正常工作
非常感谢。我认为问题在于(在REMOTESERVER1上)创建了格式后,在连接到REMOTESERVER2之前,您需要断开与本地会话的连接。格式需要移动到本地会话,然后移动到REMOTESERVER2 这对我来说很有用(只是在REMOTESERVER1、LOCAL和REMOTESERVER2之间移动了格式目录),至少日志表明它成功了
filename RLink 'myScript' ;
options comamid=tcp remote=REMOTESERVER1;
signon REMOTESERVER1 ;
rsubmit;
proc format;
value $test
'TEST'=1 ;
run;
Proc Download
InCat = Work.Formats
OutCat = Work.Formats;
Run;
endrsubmit ;
/* Now back in LOCAL */
filename RLink 'myScript2' ;
options comamid = tcp remote = REMOTESERVER2 ;
signon REMOTESERVER2 ;
rsubmit ;
Proc Upload
InCat = Work.Formats
OutCat = Work.Formats;
Run;
endrsubmit ;
我认为问题在于(在REMOTESERVER1上)创建格式后,在连接到REMOTESERVER2之前断开与本地会话的连接。格式需要移动到本地会话,然后移动到REMOTESERVER2 这对我来说很有用(只是在REMOTESERVER1、LOCAL和REMOTESERVER2之间移动了格式目录),至少日志表明它成功了
filename RLink 'myScript' ;
options comamid=tcp remote=REMOTESERVER1;
signon REMOTESERVER1 ;
rsubmit;
proc format;
value $test
'TEST'=1 ;
run;
Proc Download
InCat = Work.Formats
OutCat = Work.Formats;
Run;
endrsubmit ;
/* Now back in LOCAL */
filename RLink 'myScript2' ;
options comamid = tcp remote = REMOTESERVER2 ;
signon REMOTESERVER2 ;
rsubmit ;
Proc Upload
InCat = Work.Formats
OutCat = Work.Formats;
Run;
endrsubmit ;
为什么要频繁断开/连接到远程服务器?我想你指的是REMOTESERVER1和REMOTESERVER2?您确定PROC格式正确吗?我意识到它使用的是MULTILABLE选项(我不熟悉),但只有一个VALUE语句…对吗?是的,格式正确,如果在服务器上创建,然后运行它工作的摘要,只有当格式从一台服务器传输到另一台服务器时,它才会停止工作。为什么要频繁断开/连接到远程服务器?我想你指的是REMOTESERVER1和REMOTESERVER2?您确定PROC格式正确吗?我意识到它使用的是多标签选项(我不熟悉),但只有一个VALUE语句…对吗?是的,格式是正确的,如果在服务器上创建,然后运行摘要,它就会工作,只有当格式从一台服务器传输到另一台服务器时,它才会停止工作。正确。将具有使用自定义格式的字段的数据集移动到另一个平台时,格式需要与之匹配。正确。当将具有使用自定义格式的字段的数据集移动到另一个平台时,格式需要随之移动。