Я работаю на ПК SAS 9.1 и работаю на двух удаленных серверах, поэтому я пытаюсь настроить свои параметры и форматы и т. Д .; на локальном компьютере, прежде чем загружать их на каждый удаленный сервер.SAS Многослойный формат не работает при загрузке/загрузке
Я хочу применить многослойный формат к сводке proc. У меня есть формат, частично работающий, но что-то не получается, когда я загружаю (или загружаю) формат.
В этом примере ниже я создаю формат MultiLabel на удаленном сеансе. Затем я создаю простой набор данных и применяю формат.
Затем я произведу сводку Proc о данных, которые приведут таблицу с полем таблицы таблицы, суммированную сначала с форматированием модели, затем сделайте, а затем введите, в результате получится таблица из 8 строк.
Затем я загружаю формат на локальный сеанс и выполняю то же создание и сводку данных. Когда это выполняется, только первая метка (Модель) формата используется в сводке Proc, это означает, что мой набор данных имеет только 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 и т. Д .; но не может найти кого-либо еще, кто испытывает эту проблему.
Похоже, что что-то не так с чтением переданного формата, потому что оно выглядит правильно и когда формат создается на любом сервере, таблица будет работать на этом сервере.
Я в основном размещаю, чтобы узнать, встречается ли кто-нибудь здесь, если они знают, почему это может произойти, или еще лучше, если есть что-то, что можно сделать, чтобы убедиться, что процесс будет работать должен.
Большое спасибо.
Почему вы так сильно отсоединяете/подключаетесь к удаленному серверу? Я предполагаю, что вы имеете в виду REMOTESERVER1 и REMOTESERVER2? Вы уверены, что PROC FORMAT верен? Я понимаю, что он использует параметр MULTILABLE (с которым я не знаком), но есть только 1 оператор VALUE ... это правильно? –
Да, формат правильный, если он создан на сервере, а затем запускает сводку, это работает, только когда формат передается с одного сервера на другой, который он перестает работать. – Satkin2