1

私はPC SAS 9.1で作業しており、2台のリモートサーバーで作業しているため、パラメーターとフォーマットなどを設定しようとしています; 各リモートサーバーにアップロードする前にローカルで。

マルチレイヤー形式をプロシージャ サマリーに適用したいと考えています。フォーマットは部分的に機能していますが、フォーマットをアップロード (またはダウンロード) すると問題が発生します。

以下の例では、リモート セッションで MultiLabel 形式を作成しています。次に、単純なデータセットを作成し、フォーマットを適用します。

次に、データに対して Proc Summary を実行します。これにより、最初にモデルによってフォーマットされたテーブルのブランド フィールドが要約されたテーブルが生成されます。

次に、フォーマットをローカル セッションにダウンロードし、同じデータセットの作成と要約を実行します。これを実行すると、形式の最初のラベル (モデル) のみが Proc Summary で使用されます。これは、データセットの 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などで調べてみました。しかし、この問題を経験している人を見つけることができません。

正しく作成されているように見え、任意のサーバーでフォーマットが作成されると、そのサーバーでテーブルが機能するため、転送されたフォーマットの読み取りに問題があるように感じます。

私は基本的に、ここにいる誰かが以前に問題に遭遇したことがあるかどうか、なぜそれが起こっているのかを知っているかどうか、またはプロセスが正常に機能することを確認するためにできることがあるかどうかを確認するために投稿しています.

どうもありがとう。

4

1 に答える 1

1

問題は、(REMOTESERVER1で)フォーマットを作成した後、REMOTESERVER2に接続する前にLOCALセッションに切断することだと思います。FORMAT を LOCAL セッションに移動してから、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 ;
于 2012-04-25T19:40:46.220 に答える