tips(SAS)変数名をまとめて変更したい 概要 変数名を変更(rename)する場合、renameステートメントにひとつひとつ記載する必要がありました。2つや3つなら問題ありませんが、その数が20,30,50となってくると漏れも発生しますし何よりもコードが冗長になり、全体... 2021.11.23tips(SAS)
tips(SAS)length値の異なる変数でmergeしたい 概要 mergeしたい時、双方のデータセット内のkeyとなる変数が同じものを指す場合でも、まれにlength値が異なることがあります。新たに変数を作成してlength値を合わせることなくmergeする一例をメモしておきます。 ... 2021.11.14tips(SAS)
tips(SAS)SASのプロダクトステータスを確認したい 概要 プロダクトステータス(Product Status)を確認します。 コンペアでの確認や納品物の確認といった作業でどうしても合わない時、実行しているSASの情報が異なることが原因ということもあります(使用期限を知りたいとき... 2021.11.13tips(SAS)
tips(SAS)SASの使用期限を確認したい 概要 SASの使用期限(有効期限)を確認します。多くの組織でSASのインストールやライセンスの更新作業はヘルプデスクやインフラ担当が行いますが、まれに利用者本人が行うところもあります。この方法で作業後の使用期限を確認できます。 ... 2021.11.12tips(SAS)
プロシジャCOMPAREプロシジャ 概要 2つのデータセットを比較します。 構文 PROC COMPARE <option(s)>; BY <DESCENDING> variable-1 <<DES... 2021.11.07プロシジャ
Excel読み取り専用を推奨するダイアログを表示したい(Excel) 概要 Excelを開く際に読み取り専用を推奨するダイアログを表示します。プロパティ右クリックで設定できる「読み取り専用」ではありません。 設定 ファイルを開き、名前を付けて保存(F12)→ツール→全般オプション ... 2021.11.05Excel
tips(SAS)間違ってプログラムを実行してしまった際の予防をしておきたい 趣旨 あまりなさそうなシチュエーションですが、モノによっては出力時間(タイムスタンプ)が他の出力との順番で整合性がとれないとよくないということもあります。単純に全部やりなおせばと思われますが、そのやり直しに長時間を要し、一晩放置が必... 2021.11.04tips(SAS)
tips(SAS)workライブラリのデータセットをまとめて削除したい ほぼすべてのプログラムの一番上に書かれているあれです。毎日見てるけど自分で書くことがなく、忘れがちなのでメモだけしておきます。 コード 適当にデータセットを作る。 data aaa bbb ccc ddd; a = 1; ... 2021.11.03tips(SAS)
tips(SAS)計算前にnullチェックをしたい SAS独特の書き方があったのでメモ。 概要 数値計算をする際にnull値があるとうれしくないNOTEが出てしまいます。成果物としてよろしくないので内部で処理をする方法をいくつか記録しておきます。 データ準備 dat... 2021.08.22tips(SAS)
tips(SAS)inputステートメントで8文字を超える文字値を入力したい 1文字=1バイト=1桁として書いています。 うまくいかない例 data cards_char8_1; input COL_A $ COL_B $; cards; abcdefghij aaabbbcccddd 123456... 2021.08.21tips(SAS)
tips(SAS)inputステートメントでnull値を入力したい 実際にはcardsステートメントのお話になります。 null値がないとき data card_blank_1; input A B AA $ BB $; cards; 1 2 ABC DEF 3 4 XXX YYY ; r... 2021.08.20tips(SAS)
プロシジャUNIVARIATEプロシジャ 概要 さまざまな記述統計量、グラフ表示、統計方法を提供します。 構文 PROC UNIVARIATE <option(s)>; BY variables; CDFPLOT <variab... 2021.06.16プロシジャ
tips(SAS)オブザベーション数を求める オブザベーション数(=レコード数)を求めます。 元データ sashelp.classのオブザベーション数を求めてみます(19レコード)。 proc print data = sashelp.class; run; ... 2021.03.31tips(SAS)
tips(SAS)日付変換 日付変換です。ある程度パターン化されているのでメモしておきます。 yyyy-mm-dd → yymmdd系 YYMMDDxw出力形式を利用します。 x:区切り文字を指定。 B空白区切り。Cコロン区切り。Dハ... 2021.03.29tips(SAS)
プロシジャPRINTプロシジャ 概要:データセットを表示します。 構文 PROC PRINT <option(s)>; BY <DESCENDING> variable-1 <<DESCENDING> vari... 2021.03.22プロシジャ
Word選択範囲を拡張させない(Word) Wordで文章の一部をコピーしようとした際に、選択していない部分まで拡張されてしまうことが多々あります。ずっとWordのバグだと思ってたのですが、仕様でした。設定で変更できます。 詳細はこんな感じ 操作では忠実に文字の部分の... 2020.09.21Word
プロシジャTRANSPOSEプロシジャ 概要:データセットを転置します。(選択した変数をオブザベーションに転置してデータセットを出力します。) 構文 PROC TRANSPOSE <DATA=input-data-set><DE... 2020.09.13プロシジャ
Wordルーラー上のインデントを細かく設定したい(Word) Wordでのお話です。インデントを設定する場合、SAS内のエディタやテキストエディタであればスペースバー、Tabキー、カーソルキーを利用すればイメージどおりの位置にインデントとして設定できます。ところがWordではイメージどおりにいかない... 2020.09.05Word
tips引用符付き貼り付けをできるように設定する(秀丸エディタ) 他のエディタではたいてい実装されている右クリック → 「引用符付き貼り付け」ですが、秀丸エディタにはデフォルトで存在しません。設定で付けることが可能です。手元に秀丸エディタがないので画像なしで手順のみ記載しておきます。 手順 1.メ... 2020.08.18tips
Add-InデータセットをExcelに貼り付けて使いやすく加工する(アドイン) SASのデータセットを開き右クリックしてWHEREを選んで・・・がとても使いにくく感じたので自作アドインを利用しています。 ※1:Excelのアドインを利用します。※2:SASのプロシジャなどを利用してExcelに出力する機能ではあ... 2020.08.13Add-In
tips(SAS)Frame(枠、フレーム)を作る Frameを作ります。出力データがゼロ件の場合、このFrameとmergeすることでオブザベーションが発生しない問題を回避します。フレーム、枠、Dummy、ダミー、箱、etc.. 人によっていろんな呼び方があるようです。 コード d... 2020.07.09tips(SAS)
プロシジャREPORTプロシジャ 概要:要約レポートまたは詳細レポートを作成します。 構文 構文 PROC REPORT <option(s)>; BREAK location break-variable </ option(s)>... 2020.07.08プロシジャ
tips(SAS)重複を削除する 重複したオブザベーションを削除したい。SORTプロシジャを利用します。 構文 PROC SORT DATA = ソート前のデータセット OUT = ソート後のデータセット NODUPKEY; BY ソートキー; RUN; ... 2020.07.04tips(SAS)
tips(SAS)プロシジャ実行時に結果ビューアへの出力を抑制する ods selectを利用します。 前提 結果ビューアって? 上の赤枠:結果(結果ウィンドウ)下の赤枠:結果ビューア(結果ビューアウィンドウ)※画像はSAS-Studioのものですが、PC版のSASでも同様のものがあります。 ... 2020.07.03tips(SAS)
tips(SAS)プロシジャの出力結果をRTFファイルで出力する ods rtfを利用します。 構文 ods rtf file = "出力ファイル名(フルパス)"; (プロシジャ) ods rtf close; 例 ods rtf file = "/home/xxxxxxxxx... 2020.07.02tips(SAS)
tips(SAS)プロシジャ出力を結果ウィンドウに出力しない ods exclude 〜 selectで実現できます。あまり実感したことはありませんが、プログラム内でプロシジャを何度も実行するときなど、若干処理速度が上がると思います。 構文 ODS EXCLUDE ALL; (プロシジャ)... 2020.07.01tips(SAS)
Power ShellLogチェックをしたい(Power Shell) 概要 Logチェックって、要するにgrepですよね。Power Shellを利用してみます。SASのログウィンドウでErrorやWarningはログの文字色が変わるので目視でも見つけやすいです。しかしながらログの文字色が変わらないN... 2020.06.30Power Shell
tips(SAS)統計量のラベルを調べる ods outputでプロシジャの結果をデータセットに出力できますが、1つのプロシジャから多くの結果が出力されるため、その名称(ラベル名)は不明なことが多いです。 ods traceで調べられます。 構文 ods tra... 2020.06.29tips(SAS)
tips(SAS)プロシジャの出力結果をデータセットに保存する ods outputを利用します。 構文 ods output 統計量の名前(ラベル) = 出力するデータセット名; (プロシジャ) ods output close; 例 ここで書いたLIFETESTプ... 2020.06.28tips(SAS)
プロシジャEXPORTプロシジャ 概要:データセットを外部データソースに書き込みます。 構文 PROC EXPORT DATA = <libref.>SAS data set <(SAS data set option(s))> ... 2020.06.27プロシジャ
プロシジャFORMATプロシジャ 概要:変数に対し独自の入力形式と出力形式を定義します。 構文 PROC FORMAT <option(s)>; EXCLUDE entry(s); INVALUE <$>name &l... 2020.06.26プロシジャ
Add-In全シートのフィルタをクリアする(Excel) 全シートに設定されているすべてのフィルタをクリアします。※1:アドインを利用します。※2:フィルタの削除ではありません。※3:アクティブシートのみのフィルタのクリアではありません。※4:フィルタ削除のことを「解除」と表現する方もいますが、... 2020.06.25Add-In
オプション最後のオブザベーションかどうか判別したい (つまり、setで読み込んだデータセットの最後の行を判別したい。)setステートメントのendオプションを利用します。 コード data test; set sashelp.MACRS3 end = aaa; bbb = a... 2020.06.24オプション
SASSASHELP一覧 SASHELPに収録されているデータセットを練習用に利用する際に簡単に探せればと思ったのでまとめておきます。SASHELP内のViewを参照することで容易に情報を取得できます。記事執筆時の情報となります。 コード proc sort... 2020.06.23SAS
tips(SAS)変数をマクロ変数に入れる あまりやらない処理ですが、業務で使うことがあったのでメモ。データセット内の変数であってもcall symputルーチンによってマクロ変数に入れることができます。 例1 コード data test_1; aaa = "xxx... 2020.06.22tips(SAS)
SASSAS名の最大バイト数 SAS名の最大バイト数についてまとめておきます。※SAS名:データセット名、変数名、マクロ変数名など。 SAS名最大バイト数データセット32変数32マクロ変数32マクロ32配列32ライブラリ8特にライブラリは8バイトなので気をつけな... 2020.06.21SAS
関数剰余(余り)を求める mod関数を使います。 構文 mod(arg1, arg2);arg1 : 割られる数arg2 : 割る数(≠0) 例 data test; ans1 = mod(10,1); ans3 = mod(10,3); ... 2020.06.20関数
プロシジャMEANSプロシジャ 概要:記述統計量を計算します。 構文 PROC MEANS <option(s)> <statistic-keyword(s)>; BY <DESCENDING> variable-1 ... 2020.06.19プロシジャ
tips(SAS)空白を削除する 数値を文字列に変換したときに先頭に入ってしまう空白を削除したい。→ strip関数,trim関数,left関数などが利用できます。 関数名構文解説stripstrip(STR);先頭と末尾の空白を削除。trimtrim(STR);末... 2020.06.18tips(SAS)
tips(SAS)データセットの存在を確認する call symput とexist関数を利用して解決できます。ここではそれを利用して特定のデータセットの存在を確認し、その結果によって処理を分岐させる処理をしています。 以下のような処理をしています。 1.データセット"ds"が存... 2020.06.15tips(SAS)