tips

スポンサーリンク
tips(SAS)

inputステートメントで8文字を超える文字値を入力したい

1文字=1バイト=1桁として書いています。 うまくいかない例 data cards_char8_1; input COL_A $ COL_B $; cards; abcdefghij aaabbbcccddd 1234567890 1234...
tips(SAS)

inputステートメントでnull値を入力したい

実際にはcardsステートメントのお話になります。 null値がないとき data card_blank_1; input A B AA $ BB $; cards; 1 2 ABC DEF 3 4 XXX YYY ; run; まずはnu...
tips

引用符付き貼り付けをできるように設定する(秀丸エディタ)

他のエディタではたいてい実装されている右クリック → 「引用符付き貼り付け」ですが、秀丸エディタにはデフォルトで存在しません。設定で付けることが可能です。手元に秀丸エディタがないので画像なしで手順のみ記載しておきます。 手順 1.メニュー ...
tips(SAS)

Frame(枠、フレーム)を作る

Frameを作ります。出力データがゼロ件の場合、このFrameとmergeすることでオブザベーションが発生しない問題を回避します。フレーム、枠、Dummy、ダミー、箱、etc.. 人によっていろんな呼び方があるようです。 コード data ...
tips(SAS)

重複を削除する

重複したオブザベーションを削除したい。SORTプロシジャを利用します。 構文 PROC SORT DATA = ソート前のデータセット OUT = ソート後のデータセット NODUPKEY; BY ソートキー; RUN; proc sort...
tips(SAS)

プロシジャ実行時に結果ビューアへの出力を抑制する

ods selectを利用します。 前提 結果ビューアって? 上の赤枠:結果(結果ウィンドウ)下の赤枠:結果ビューア(結果ビューアウィンドウ)※画像はSAS-Studioのものですが、PC版のSASでも同様のものがあります。 実行したプロシ...
tips(SAS)

プロシジャの出力結果をRTFファイルで出力する

ods rtfを利用します。 構文 ods rtf file = "出力ファイル名(フルパス)"; (プロシジャ) ods rtf close; 例 ods rtf file = "/home/xxxxxxxxxx/data/dummy07...
tips(SAS)

プロシジャ出力を結果ウィンドウに出力しない

ods exclude 〜 selectで実現できます。あまり実感したことはありませんが、プログラム内でプロシジャを何度も実行するときなど、若干処理速度が上がると思います。 構文 ODS EXCLUDE ALL; (プロシジャ) ODS S...
tips(SAS)

統計量のラベルを調べる

ods outputでプロシジャの結果をデータセットに出力できますが、1つのプロシジャから多くの結果が出力されるため、その名称(ラベル名)は不明なことが多いです。 ods traceで調べられます。 構文 ods trace on; (プロ...
tips(SAS)

プロシジャの出力結果をデータセットに保存する

ods outputを利用します。 構文 ods output 統計量の名前(ラベル) = 出力するデータセット名; (プロシジャ) ods output close; 例 ここで書いたLIFETESTプロシジャを利用しています。 ods ...
tips(SAS)

変数をマクロ変数に入れる

あまりやらない処理ですが、業務で使うことがあったのでメモ。データセット内の変数であってもcall symputルーチンによってマクロ変数に入れることができます。 例1 コード data test_1; aaa = "xxx"; call s...
SAS

SAS名の最大バイト数

SAS名の最大バイト数についてまとめておきます。※SAS名:データセット名、変数名、マクロ変数名など。 SAS名最大バイト数データセット32変数32マクロ変数32マクロ32配列32ライブラリ( libname )8ファイルネーム( file...
tips(SAS)

空白を削除する

数値を文字列に変換したときに先頭に入ってしまう空白を削除したい。→ strip関数,trim関数,left関数などが利用できます。 関数名構文解説stripstrip(STR);先頭と末尾の空白を削除。trimtrim(STR);末尾の空白...
tips(SAS)

データセットの存在を確認する

call symput とexist関数を利用して解決できます。ここではそれを利用して特定のデータセットの存在を確認し、その結果によって処理を分岐させる処理をしています。 以下のような処理をしています。 1.データセット"ds"が存在しない...
tips(SAS)

最大値、最小値を求める

meansプロシジャを利用します。 例 テストデータを準備。 data test; set sashelp.class; run; 変数Ageについての最大値と最小値を求めます。 proc means data = test; var Ag...
tips(SAS)

オブザベーション(レコード)を複製して空行を作る

ここで書いたoutputステートメントを利用してオブザベーションを複製することができます。RTFファイル(帳票)を作成する際に、元データとしては空行が含まれたデータセットが必要になることがあります。 元データ data test; sort...
tips

ファイルを削除する前に確認ダイアログを出す。

Windowsはデフォルトでファイル削除前の確認ダイアログがでないので設定。 ゴミ箱のプロパティ Windows8、Windows10で確認しました。
tips(SAS)

データセットをExcelで出力する

SAS Studioで確認しました。PC版のSASでも動くはずです。 やりたいこと このデータセットをエクセルで出力したい。ただしクリップボード経由の方法は用いない。このデータセットはSASHELP内にあったもの(CNTAINER)です。小...
VBA

複数のフォルダを開く(VBA編)

VBAで完結します。フリーソフト等は使いません。以前紹介した「複数のフォルダを開く(バッチ編)」では開くフォルダの位置調整ができませんでしたが、この方法では開いた後に自動で等間隔でずらして表示されます。同時に複数のフォルダを開きっぱなしにし...
tips(SAS)

SAS StudioでExcelデータを読み込む

SAS Studioでのみ動作確認できた方法です。クライアント版のSASで機能するか不明です。読み込む方法としては・libnameステートメント・importプロシジャ・DDE(Dynamic Data Exchange)が有名ですが、いず...
tips(SAS)

SAS StudioでExcelデータを扱う

自宅学習でお世話になることの多いSAS StudioではローカルPCにあるデータは直接触れません。(もしも方法があったら教えて下さい。)なので、ローカルPCで作成したファイルをSAS Studioの自分に割り当てられたフォルダにアップロード...
tips(SAS)

読み込むオブザベーション数を指定する

firstobsで最初に読み込むオブザベーションの行数を指定できます。obsで最後に読み込むオブザベーションの行数を指定できます。 テストデータ data test_data; length NO 8.; set sashelp.class...
tips(SAS)

変数の並び替えをする

変数の並び(並び順、順番)を整える。formatステートメントを使います。 元のデータ proc print data = sashelp.class; run; 並べ替える data class_change; format name a...
tips(SAS)

マクロ変数の計算をする

※SAS 9.4 マクロ言語リファレンスより %eval整数演算を使用して、算術演算式や論理式を評価します。%sysevalf浮動小数点演算を使用して、算術演算式や論理式を評価します。 整数の場合 /* コード */ %let a = 1;...
tips(SAS)

SEQ(シーケンス)番号を振る

構文(合計ステートメント) 変数 + 式 ;変数:合計を格納したい変数。式:加算したい数。 テストデータ 総務省統計局で公開されている各国の人口推移(&予想)のデータより抜粋しました。もっと抜粋してもよかった。 data raw_data;...
tips(SAS)

変数をまとめて欠損値にする

構文 call missing(変数名1<,変数名2,…>); <>は省略可能の意味です。 テストデータ data dummy1; input c1 $ n1 c2 $ n2 c3 $ n3; cards; aaa 1 bbb 2 ccc ...
tips

よく使うショートカット

SAS Ctrl + U選択した部分を大文字にする(Uppercase)。Ctrl + L選択した部分を小文字にする(Lowercase)。Ctrl + /選択された行をコメントアウトする。(SAS Studioではコメントアウトの解除も行...
tips(SAS)

全オブザベーション(全行)に同じ値を追加する

自動変数を利用します。 元のデータセット data class; set sashelp.class;run; 追加したい値が入ったデータセット data add_ds; input add1 add2 $;cards;1 addvalue...
VBA

Excelでブック内にある全シートの名称一覧を取得する

1.ALT+F11を押す(VBAの画面が立ち上がる)。 2.CTRL+Gを押す(イミディエイトウィンドウが開く)。 3.以下のコードを入力しENTERを押す。 For Each i In ThisWorkbook.Sheets: debug...
tips(SAS)

リスト入力によりデータを作成する

練習用に簡単なテストデータを作りたいときなどに。 コード data DummyData; input ID NAME $ SEX $ AGE HEIGHT WEIGHT;cards;1 Tanaka F 20 160.8 50.02 Sat...
tips(SAS)

マクロ変数の内容をログに出力する

マクロ変数であれば%putステートメントを使ってログ出力することができる。 コード %let aaa = xxx; %put &aaa.; ログ 72 %let aaa = xxx; 73 %put &aaa.; xxx
bat

複数のフォルダを開く(バッチ編)

rem 入力待ちpauserem フォルダを開くstart explorer "開きたいフォルダ1の絶対パス"rem 5秒待つtimeout /t 5 /nobreak >nulrem フォルダを開くstart explorer "開きたい...
スポンサーリンク