ラベル ステートメント: CARDS の投稿を表示しています。 すべての投稿を表示
ラベル ステートメント: CARDS の投稿を表示しています。 すべての投稿を表示

2016年11月22日火曜日

【小ネタ】 CARDSは 「RUN;」 が不要



データステップってふつう 「RUN;」 で締めるのがふつうですよね。

data DT1;
  A=1;
run;

RUN; で「終わりか」と判断してデータステップを終わらせてくれます。



しかし以下のようにCARDSステートメントがあると、、

data DT1;
input A;
cards;
1
2
3
;

ログ
NOTE: データセットWORK.DT1は3オブザベーション、1変数です。


RUN; がなくても実行出来ちゃいました。
CARDS4、DATALINES、DATALINES4の各ステートメントでも同様でした。


よく分からないけど、そうなのか。
分かっててもなんとなく違和感あるから RUN; つけちゃうけど。

2016年4月8日金曜日

CARDS vs CARDS4



今回は「CARDS」と「CARDS4」の違いを見ていきたいと思います。

CARDSの詳しい使い方や注意事項についてはSAS社のリファレンスをご確認下さい
(CARDSと同じ機能の「DATALINESステートメント」の方に詳しい使い方などが書かれてます)



ではまず、以下をご覧ください。
「CARDS;」 と 「;」 の間のテキストを読み込み範囲としています。

data DT1;
   length A $10. B 8.;
   input A B;
cards;
aaa .
. 1
;
run;
  A   
  B   
 aaa   .  
  1  


CARDSではセミコロン「;」が読み込み範囲終了の合図になっていますが、、

data DT2;
   length A $10. B 8.;
   input A B;
cards4;
aaa; .
. 1
;;;;
run;
  A   
  B   
 aaa;   .
   1  

CARDS4はセミコロン4つ「;;;;」が終了合図になっています。そのため読み込むテキスト中にセミコロンを含める事が出来ます。



ちなみに

似た機能で「DATALINES」「DATALINES4」というステートメントがありますが、「CARDS」「CARDS4」と挙動は一緒です。

また、マクロの中でCARDS等は使えない(エラーになる)ので、ご注意下さい。