1

サンプルの SAS Proc レポート コードを以下に示します。across 変数の 1 つの値について、ヘッダーの背景と前景の色を変更したいと考えています。計算ブロックを使用して、絶対列参照c4およびc5を使用して列の背景を明るい灰色に変更しました。c4c5のヘッダー スタイル属性を background=gainboro と foreground=blackに変更するにはどうすればよいですか?

data test;
length name $ 10 disease $ 10.;
infile datalines dsd;
input name $ disease cases rate;
datalines;
State,Fever,4847,25.16
State,Cold,25632,131.5
State,Flu,103825,535.82
Lincoln,Fever,3920,44.17
Lincoln,Cold,16913,190.18
Lincoln,Flu,62965,735.39
Washington,Fever,827,56.56
Washington,Cold,3609,234.26
Washington,Flu,16610,1078.8
Kings,Fever,1026,37.45
Kings,Cold,4984,181.85
Kings,Flu,18388,694.33
Sussex,Fever,1411,78.38
Sussex,Cold,5515,300.46
Sussex,Flu,13881,813.11
Queens,Fever,616,26.03
Queens,Cold,2496,107.75
Queens,Flu,12518,558.09
;
run;


proc report data=test nowd headline headskip
STYLE(Header)={background=charcoal foreground=white }
style(column)={background=gray foreground=black}
style(report)=[rules=rows bordercolor=white];
columns (name disease,(cases rate));
define name/group order=data 'County' style(column)={background=lighttgray} style(header)=[bordertopcolor=gainsboro background=gainsboro foreground=black];
define disease/across '' order=data  ;
define cases/'Cases' format=comma9. ;
define rate/'Rate' format=comma12.1 ;
compute cases;
    call define('_c4_','style','style={background=lighttgray}');
    call define('_c5_','style','style={background=lighttgray}');
endcomp;
run;
quit;
run;
4

3 に答える 3

1

@ChrisJ が、CSS スタイルと n 番目の子の選択でこれを実行できる可能性があると述べたように、可能です。残念ながら、SASの処理方法が原因でできない可能性もありますPROC REPORT-特に、ヘッダー行を含むすべてがsPROC REPORT内に押し込まれるため、ヘッダーが子または兄弟ではないため、n番目の子および兄弟セレクターは不可能ですお互いの。<tr>

例として使用して、これの厄介なバージョンのsashelp.cars例を次に示します。

CSS: (ドライブのどこかに .css ファイルを保存します。例: "c:\temp\test.css"):

@import 'base.css';

/* Red the second (really third) column header value */
.table thead tr:nth-child(2) th:nth-child(3)  {
    color:red
}

/* Yellow background for the mpg headers under Europe */
.table thead tr:nth-child(3) th:nth-child(4),
.table thead tr:nth-child(3) th:nth-child(5)
{
    background-color:yellow
}

/* Green the mpg-city values */
.table thead tr:nth-child(3) th:nth-child(even) {
    color:green
}

SAS プログラム: (上記で保存した CSS ファイルを想定)

ods html file='example.html' cssstyle='c:\temp\test.css'(html);
ods pdf file='example.pdf' cssstyle='c:\temp\test.css'(print);
proc sort data=sashelp.cars out=cars; by origin;
run;
proc report data=cars nowd;
  columns type origin,(mpg_city mpg_highway);
  define origin/across;
  define type/group;
  define mpg_City / analysis mean;
  define mpg_highway / analysis mean;    
run;

ods _all_ close;

これは、Kevin Smith のUnveiling the power of Cascading Style Sheets (CSS) in ODSに部分的に基づいています。

残念ながら、"MPG(City)" が含まれるセルを特定することはできませんが、列番号が偶数であることがわかっている必要があります。同様に、「ヨーロッパ」の下にあるセルを特定することはできませんが、それらがどのセルになるかを知る必要があります。

于 2016-08-05T17:01:46.163 に答える