1

何度か、SAS でプロシージャを実行し、別のプログラム (MATLAB) からアクセスできるように出力変数を保存する必要がありました。これは簡単です。例えば:

proc genmod order=data;
    class X Y Z;
    output out= gmout1 prob = PRED;
    model count=X Y Z /dist=poi pred;
run; *mutual independence;
proc export data = work.gmout1
    outfile = "...\genmodout1.txt"
    dbms = csv replace;
run;

3 行目のoutput out= gmout1は、proc genmod がエクスポートする変数を gmout1 というライブラリ テーブルに保存します。

私の現在のニーズは、SAS 内の gmout1 に保存されているデータの一部にアクセスできるようにすることです。簡単なはずですが、私の検索では有用なものは何も見つかりませんでした。

4

1 に答える 1

1

オプションを使用して、データセット gmout1 を他のプロシージャの入力として使用dataできます。たとえば、これらを印刷する場合:

proc print data=gmout1;
var _all_;
run;

setステートメントを使用して、データ ステップ (SAS でのほとんどのプログラミングが行われる場所) でデータを変更することもできます。たとえば、変数 "fit" があり、それを x100 に再コーディングする必要がある場合は、次のようにします。

data gmout2; *creates new dataset gmout2;
set gmout1; *use the dataset gmout1;
new_fit = fit * 100;*creates new variable new_fit as 100 times fit;
run;

特定の変数 (または複数の変数) をテキスト ファイルにエクスポートするには、複数のオプションがあります。最も簡単:

data _null_;
set gmout1;
file "c:\temp\myfile.csv" dlm=',' lrecl=32767 dsd;
if dimension="Value" and dimension2="Value";
put
variable1_numeric
variable2_character $
variable3_numeric
;
run;

マトリックスについて言及したことに注意してください-技術的には、ベースSASはマトリックスではなく、データセット(基本的にはデータの行)のみで動作します。SAS/IML はマトリックス言語です。その使用法は R に似ており、一般的な行列構文を使用できます。

于 2013-02-21T07:10:29.153 に答える