BookmarkSubscribeRSS Feed
3 REPLIES 3
izumi_sas
SAS Employee

そのリンク先をそのままそっくり再現しようとすると、"SAS Stored Process"という機能を利用する必要がありますが、University Edition にはその機能は含まれていないので、できません。ここでやっているのは、ダイナミックにSASプログラムをHTTPリクエストでパラメータを渡して実行してd3.jsを使う書式に合わせてHTMLを生成しています。これを単にHTMLファイルを静的に出力してブラウザで利用できればよいということであれば、以下に非常にシンプルなサンプルを記したので参考にしてください。基本的な考え方は、d3.jsを埋め込んだHTMLファイルを作成しているだけなので、d3.jsの使い方+SASデータセットの値をd3.jsのデータ形式に合わせて出力することで、実現できます。

 

すみません、このサンプルはBASE SASがあれば動きますが、現在私の手元にはUniversity Editionがないので、Windows版SASを使用しています。University Editionで以下コードを使うためには、htmlファイルの出力先、表示方法や、エンコード(おそらくUTF-8でしたか)を適宜変更していただく必要があると思います。

 

 

filename myhtml "c:\temp\d3js\index.html";
data _null_;
file myhtml;
put 
'<!DOCTYPE html>' /
'<html lang="ja">' /
'    <head>' /
'        <meta charset="shift-jis">' /
'        <title>D3 Test</title>' /
'        <script src="http://d3js.org/d3.v3.min.js" charset="shift-jis"></script>	' /
'    </head>' /
'    <body>' /
'        <script type="text/javascript">' /
;
run;

data _null_;
	file myhtml mod;
	set sashelp.class end=last;
	if _n_=1 then do; 
	  put 'var dataset =[';
	end;
	if last then do;
	  put '"' name '"];';
	end;else do;
	   put '"' name '",';
	end;
run;

data _null_;
file myhtml mod;
put
'            d3.select("body").selectAll("p").data(dataset).enter().append("p").text(function(d) { return d; });' /
'        </script>' /
'    </body>' /
'</html>' /
;
run;

参考になれば幸いです。

 

sakamoto
Obsidian | Level 7

とりあえずそのまま貼り付けて実行したら、下記のエラーが出ました

 

ERROR: 権限不足のため、/opt/sasinside/SASConfig/Lev1/SASApp/c:\temp\d3js\index.htmlにアクセスできません。

japelin
Rhodochrosite | Level 12

とりあえずそのまま貼り付けて実行したら、下記のエラーが出ました

 

filename ステートメントを

 

filename myhtml "/folders/myfolders/sasuser.v94/index.html";

と変更すれば動くようです。

 

 

SAS University EditionはLinux上で動いているので、C:\~のパスでは動作

しません。また割り当てられた自分のフォルダ以下にしかアクセス権限が

ありませんので、上記のような修正が必要です。

なお、パス区切り文字も「\」から「/」に変更が必要です。

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

Discussion stats
  • 3 replies
  • 1827 views
  • 2 likes
  • 3 in conversation