PROC IMPORT を使用して Stata 形式のデータ セットをインポートしていますが、IF ステートメントを使用していくつかの新しい変数も作成したいと考えています。ただし、このようなコードを単純に使用すると、「エラー 180-322: ステートメントが無効であるか、不適切な順序で使用されています」というエラーが返されます。:
PROC IMPORT
DATAFILE = "myfile.dta"
DBMS = DTA
OUT = mydata
REPLACE;
IF close < 10 THEN val = "low";
ELSE val = "high";
RUN;
ODS TRACE ON を使用しても、ログ ファイルにデータ ステップのコードが生成されません。ここで IF ステートメントを使用する別の方法はありますか?
更新: PROC IMPORT の後に DATA ステップを追加すると、次のようになります。
PROC IMPORT
DATAFILE = "myfile.dta"
DBMS = DTA
OUT = mydata
REPLACE;
RUN;
DATA mydata;
IF close < 10 THEN val = "low";
ELSE val = "high";
RUN;
PROC PRINT DATA=mydata;
RUN;
これは、次のような空のテーブルのみを出力します。
close | val
| high
データセットを調べると、元のデータが含まれていないことがわかります。