SAS からの出力を、tagsets.latex、tagsets.simpleLatex、tagsets.tablesOnlyLatex タグセット用にカスタマイズしようとしています。必要なものはほとんどあります。データ行のみで、ヘッダーはなく、他のタグはまったくありません。
これは私が得ている出力です:
\tabularnewline
\tabularnewline
Internet & 1 & 1 & 150.00 & 150.00 & . & 150.00 & 150.00 \tabularnewline
Mobile & 1 & 1 & 200.00 & 200.00 & . & 200.00 & 200.00 \tabularnewline
Phone & 1 & 1 & 100.00 & 100.00 & . & 100.00 & 100.00 \tabularnewline
これは私が望む出力です:
Internet & 1 & 1 & 150.00 & 150.00 & . & 150.00 & 150.00 \tabularnewline
Mobile & 1 & 1 & 200.00 & 200.00 & . & 200.00 & 200.00 \tabularnewline
Phone & 1 & 1 & 100.00 & 100.00 & . & 100.00 & 100.00 \tabularnewline
サンプル タグセットの作成方法は次のとおりです。
*Running this creates a new template;
Proc template;
define tagset Tagsets.minimal;
define event byline;end;
define event proc_title;end;
define event note;end;
define event Error;end;
define event Warn;end;
define event Fatal;end;
define event system_footer;end;
define event leaf;end;
define event proc_branch;end;
define event branch;end;
define event pagebreak;end;
define event system_title;end;
define event table;end;
define event table_head;end;
define event colspecs;end;
define event colspec_entry;end;
define event row;
break /if ^contains( $HTMLCLASS, "data");
put " " NL " " /if ^exists( $colspan);
finish:
break /if cmp( $sascaption, "true");
break /if contains( HTMLCLASS, "data");
put "\tabularnewline" NL /if ^exists( $colspan);
end;
define event data;
start:
put VALUE /if cmp( $sascaption, "true");
break /if cmp( $sascaption, "true");
break /if ^contains( HTMLCLASS, "data");
break /if exists( $colspan) | exists ( $cell_align );
put %nrstr(" & ") /if ^cmp( COLSTART, "1");
unset $colspan;
set $colspan colspan;
put tranwrd(VALUE,"-","$-$") /if contains( HTMLCLASS, "data");
put VALUE /if ^contains( HTMLCLASS, "data");
put " ";
finish:
break /if ^contains( HTMLCLASS, "data");
break /if cmp( $sascaption, "true");
break /if exists( $colspan) | exists ( $cell_align );
end;
parent = tagsets.simplelatex;
end;
quit;
これにより、いくつかのサンプル データが作成されます。
data have;
input stake bet_channel $;
datalines;
150 Internet
200 Mobile
100 Phone
run;
PROC PRINT data=have; RUN;
ods tagsets.minimal file='C:\Temp\betChannel_data.tex' (notop nobot) newfile=table;
proc means data = have N MEAN MEDIAN STDDEV MIN MAX MAXDEC=2;
VAR stake;
label bet_channel = "Channel";
CLASS bet_channel;
run;
ods tagsets.minimal close;
x 'notepad C:\Temp\betChannel_data.tex';
コードから残りのすべてのタグを選別し、必要に応じて残りのタグをフォーマットすることができたので、ソリューションに非常に近づいています。たとえば、行が空の場合に「\ tabularnewline」をスキップする方法が必要です。問題は、テンプレートのこのメソッドにあると思います。
define event row;
break /if ^contains( $HTMLCLASS, "data");
put " " NL " " /if ^exists( $colspan);
finish:
break /if cmp( $sascaption, "true");
break /if contains( HTMLCLASS, "data");
put "\tabularnewline" NL /if ^exists( $colspan);
end;
何か助けていただければ幸いです。ありがとう。