0

このフォーラムを使用して、SAS EG タスクおよびクエリでのプロンプトの作成と使用に関する情報を収集しました。ただし、Base SAS から独自の構文を転送したり、作成したプロンプト/マクロを組み込んだり参照したりして、機能させることができないようです。

現在、(SAS EG でのポイント クリック選択によって生成されたプロンプトではなく) 自分のプログラムでプロンプトを参照するたびに、SAS がマクロ参照を解決できないことがログに示されます。

独自のプログラムを SAS EG に転送し、プロンプトを統合するにはどうすればよいですか?

テストデータセットの開発に使用したコード例:

data work.testscores;
    input Gender $ 1-6 SATScore 8-11 IDNumber 13-20;
    datalines;
Male   1170 61469897
Female 1090 33081197
Male   1240 68137597
Female 1490  9589297
Male   1200 93891897
Female 1080 26212897
Male   1050  8945097
Female 1200 51799397
Male   1600 39196697
;
run;

/性別変数を使用して、プロンプト マネージャーに性別プロンプトを作成しました/

PROC SQL;
    CREATE table WORK.testscores2 as
        SELECT &Genders, SATScore
    FROM WORK.TESTSCORES
;
QUIT;

ログ:

102        PROC SQL;
103           CREATE TABLE WORK.TESTSCORES2 AS
104           SELECT &Genders
WARNING: Apparent symbolic reference GENDERS not resolved.
104           SELECT &Genders
                     _
                     22
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, 
              a numeric constant, a datetime constant, a missing value, BTRIM, INPUT, PUT, 
              SUBSTRING, USER.  

105              FROM WORK.TESTSCORES;
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
106        QUIT;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds

ありがとう、A

4

3 に答える 3

1

トピック スターターのコメントから判断すると、EG のプロンプトがどのように機能するかについて誤解があるようです。プログラムを実行する前に、マクロ変数に値を割り当てるためのツールではありません。「プロンプト」は、プログラムの実行中に値を入力するようプログラムがプロンプトを出すことを意味します。ただし、そのためには、プロンプトを対応するプログラムに割り当てて、この特定のプログラムを実行したときに SAS がこの特定のプロンプトを呼び出すようにする必要があります。そのために:right click on the task -> Properties -> Prompts -> Add

于 2014-01-09T22:45:16.610 に答える
1

コードで何を達成したいのかわかりません。プロンプトで設定したマクロ変数の値に基づいて、男性または女性の SAT スコアのみを選択しますか?

proc sql;
    create table work.testscores2 as
        select gender, satscore
            from work.testscores
                where gender = &genders.;
/* Where the value of &genders is either 'Male' or 'Female' */
quit;
于 2014-01-09T10:01:11.870 に答える
0

プロンプトで作成されたマクロ変数を使用するには、[プロジェクト全体でプロンプト値を使用する] ボックスをオンにする必要があります。

促す

于 2014-01-09T05:16:14.213 に答える