前のページ|次のページ

数値のエクスポート

次の例では、高精度の値を含んでいる数値変数を持つ小さなSASデータセットを使用します。次のSASプログラムは、割り当て済みのユーザー定義の出力形式を使ってデータセットを作成し、そのデータセットからXMLドキュメントをエクスポートします。その後、PRINTプロシジャで出力の違いを示します。
libname format xml 'C:\My Documents\format.xml'; 1

libname prec xml 'C:\My Documents\precision.xml' xmldouble=internal; 2

data npi; 3
   do n=1 to 10;
      n_pi = n*3.141592653589793;
      output;
   end;
format n_pi f14.2;
run;

data format.dbltest; 4
   set npi;
run;

data prec.rawtest; 5
   set npi;
run;

title 'Drops the Precision'; 6
proc print data=format.dbltest;
   format n_pi f14.10;
run;

title 'Keeps the Precision'; 7
proc print data=prec.rawtest;
   format n_pi f14.10;
run;
1 最初のLIBNAMEステートメントは、ライブラリ参照名FORMATを、生成されるXMLドキュメントFORMAT.XMLが格納されるファイルに割り当てます。エンジンのデフォルトの動作は、割り当てられたSASフォーマットによる数値制御になります。
2 2番目のLIBNAMEステートメントは、ライブラリ参照名PRECを、生成されるXMLドキュメントPRECISION.XMLが格納されるファイルに割り当てます。XMLDOUBLE=オプションにINTERNALが指定されているため、エンジンは格納されている生の値を取り出します。
3 続くDATAステップでは、一時データセットNPIを作成します。このデータセットには、高精度の値を含む数値変数が含まれています。この変数には、小数点以下2桁までを有効とするユーザー定義の出力形式が割り当てられます。
4 次のDATAステップでは、WORK.NPIからデータセットFORMAT.DBLTESTを作成します。
5 次のDATAステップでは、WORK.NPIからデータセットPREC.RAWTESTを作成します。
6 続くPRINTプロシジャでは、データセットFORMAT.DBLTESTからXMLドキュメントFORMAT.XMLを作成します。FORMAT.XMLには、SAS出力形式により制御された数値が含められます。XMLドキュメントFORMAT.XMLの内容を参照してください。
7 このPRINTプロシジャには、精度の損失を示す出力形式が指定されています。この出力では、小数点以下2桁よりも小さい桁はすべてゼロになります。FORMAT.DBLTESTのPRINTプロシジャ出力を参照してください。
8 続くPRINTプロシジャでは、データセットPREC.RAWTESTからXMLドキュメントPRECISION.XMLを作成します。PRECISION.XMLには、データセットPREC.RAWTESTに格納されていた数値が含められます。XMLドキュメントPRECISION.XMLの内容を参照してください。
9 このPRINTプロシジャ出力では、精度が保持されていることを示す出力形式が指定されています。PREC.RAWTESTのPRINTプロシジャ出力を参照してください。
XMLドキュメントFORMAT.XMLの内容
<?xml version="1.0" encoding="iso-8859-1" ?> <TABLE> <DBLTEST> <n>1</n> <n_pi>3.14</n_pi> </DBLTEST> <DBLTEST> <n>2</n> <n_pi>6.28</n_pi> </DBLTEST> <DBLTEST> <n>3</n> <n_pi>9.42</n_pi> </DBLTEST> <DBLTEST> <n>4</n> <n_pi>12.57</n_pi> </DBLTEST> <DBLTEST> <n>5</n> <n_pi>15.71</n_pi> </DBLTEST> <DBLTEST> <n>6</n> <n_pi>18.85</n_pi> </DBLTEST> <DBLTEST> <n>7</n> <n_pi>21.99</n_pi> </DBLTEST> <DBLTEST> <n>8</n> <n_pi>25.13</n_pi> </DBLTEST> <DBLTEST> <n>9</n> <n_pi>28.27</n_pi> </DBLTEST> <DBLTEST> <n>10</n> <n_pi>31.42</n_pi> </DBLTEST> </TABLE>
FORMAT.DBLTESTのPRINTプロシジャ出力
FORMAT.DBLTESTのPRINTプロシジャ出力
XMLドキュメントPRECISION.XMLの内容
<?xml version="1.0" encoding="iso-8859-1" ?> <TABLE> <RAWTEST> <n rawvalue="QRAAAAAAAAA=">1</n> <n_pi rawvalue="QTJD9qiIWjA=">3.14</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QSAAAAAAAAA=">2</n> <n_pi rawvalue="QWSH7VEQtGA=">6.28</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QTAAAAAAAAA=">3</n> <n_pi rawvalue="QZbL4/mZDpA=">9.42</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QUAAAAAAAAA=">4</n> <n_pi rawvalue="QckP2qIhaMA=">12.57</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QVAAAAAAAAA=">5</n> <n_pi rawvalue="QftT0UqpwvA=">15.71</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QWAAAAAAAAA=">6</n> <n_pi rawvalue="QhLZfH8zIdI=">18.85</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QXAAAAAAAAA=">7</n> <n_pi rawvalue="QhX9u+m7p3U=">21.99</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QYAAAAAAAAA=">8</n> <n_pi rawvalue="Qhkh+1RELRg=">25.13</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QZAAAAAAAAA=">9</n> <n_pi rawvalue="QhxGOr7Msrs=">28.27</n_pi> </RAWTEST> <RAWTEST> <n rawvalue="QaAAAAAAAAA=">10</n> <n_pi rawvalue="Qh9qeilVOF4=">31.42</n_pi> </RAWTEST> </TABLE>
PREC.RAWTESTのPRINTプロシジャ出力
PREC.RAWTESTのPRINTプロシジャ出力
前のページ|次のページ|ページの先頭へ