proc report 指定行(◯行目)を強調する - SAS

proc report で指定した行(◯行目)だけを強調表現する方法です。

/* テストデータ */
data TEST ;
  do I=1 to 10 ;
    R = ranuni(int(datetime())) ;
    output ;
  end ;
run ;


ods rtf file="/folders/myfolders/test.rtf" ;

proc report data=TEST nowd ;
  column I R ;
  define I / display ;
  define R / display format=12.9 ;
  
  compute I ;
    COUNT + 1 ;
    /* 5行目だけに適用 */
    if COUNT = 5 then do ;
      call define(_ROW_, 'style', 'style=[Color=red BackgroundColor=Yellow]') ;
    end ;
  endcomp ;
run ;

ods rtf close ;

compute内にて、変数 COUNT を用いて、行番号をカウントしています。if COUNT = 5 then で 5行目だけに、call define が実行されるようにします。call define では 文字色を赤、背景色を黄色にするように設定しています。

RTF の出力結果を確認すると、5行目だけちゃんと強調されています。



せっかくなので、もっと強調してみる

style=[~] と、四角括弧の中に設定するスタイルを記載します。文字色、背景色の設定だけでなく、文字のスタイル、フォント、罫線のスタイルや色なども設定できます。

強調したい行をより強調表現してみましょう。

ods rtf file="/folders/myfolders/test.rtf" ;

proc report data=TEST nowd 
  style(header)=[Fontfamily='Couriel' FontWeight=bold FontSize=3 BackgroundColor=AliceBlue] ;
  
  column I R ;
  define I / display style=[TextAlign=Center BackgroundColor=AliceBlue FontStyle=Italic] ;
  define R / display style=[TextAlign=Center] format=12.9 ;
  
  compute I ;
    COUNT + 1 ;
    /* 5行目だけに適用 */
    if COUNT = 5 then do ;
      call define(_ROW_, 'style', 'style=[Color=Crimson BackgroundColor=Yellow 
                                          BorderStyle=double BorderColor=RoyalBlue BorderWidth=6]') ;
    end ;
  endcomp ;
run ;

ods rtf close ;

レポートの出力方法によって、適応可能なスタイルが異なります。SAS UniversityEdition(SAS雲丹) 上に出力されるレポートの結果では、罫線の色やスタイルがきちんと適応されています。RTF出力では、罫線の設定が適応されていません。HTML, PDF, RTF など、色んなレポート出力形式がありますが、適応可能スタイルはそれぞれ違うのでご注意ください。


proc report 内で使用したスタイル

Fontfamily='~'
文字のフォントを指定します。
指定例: Arial, Couriel, etc
FontWeight=~
文字のフォントウェイトを指定します。
指定例: Medium, Bold
FontSize=~
文字のフォントサイズを指定します。
FontStyle=~
文字のフォントスタイルを指定します。
指定例: Italic
Color=~
文字の色を指定します。
指定例: Red, Green, Blue, etc
TextAlign=~
文字の両端揃えを指定します。
指定例: Center, Left, Right, Dec
BackgroundColor=~
背景色の色を指定します。
指定例: Red, Green, Blue, etc
BorderStyle=~
罫線のスタイルを指定します。
指定例: Dashed, Double, Dotted, etc
BorderColor=~
罫線の色を指定します。
指定例: Red, Green, Blue, etc
BorderWidth=~
罫線の幅を指定します。


参考サイト

  1. ODS出力時の罫線のカスタマイズ | 僕の頁 <SASと臨床試験と雑談と> 徒然なるままにSAS暮らし
  2. REPORTプロシジャで、1行おきに背景色を変える | SAS社FAQ
  3. REPORTプロシジャ | SAS_help@wiki

コメント

このブログの人気の投稿

日付フォーマットでない文字項目をSAS日付に変換するときにログ出力されるメッセージを抑制したい - SAS

Linuxコマンド: date で◯か月前 / ◯か月後を取得するときの注意

データセット(.sas7bdatファイル)の文字コードを取得したい - SAS