tips(SAS)データセットの存在を確認する call symput とexist関数を利用して解決できます。ここではそれを利用して特定のデータセットの存在を確認し、その結果によって処理を分岐させる処理をしています。 以下のような処理をしています。 1.データセット"ds"が存在しない...2020.06.15tips(SAS)
tips(SAS)最大値、最小値を求める meansプロシジャを利用します。 例 テストデータを準備。 data test; set sashelp.class; run; 変数Ageについての最大値と最小値を求めます。 proc means data = test; var Ag...2020.06.14tips(SAS)
その他略語 業界でよく使われる略語についてまとめています(順不同)。 略語完全形意味・備考PDPharmacodynamics薬力学PKPharmacokinetics薬物動態学SAPStatistical Analysis Plan統計解析計画書Me...2020.05.17その他
プロシジャPHREGプロシジャ 概要:COX回帰モデルに関する解析 (とりあえず構文だけです。) 構文 PROC PHREG <options>; ASSESS keyword </ options>; BASELINE <OUT=SAS-data-set> <COVAR...2020.05.06プロシジャ
プロシジャLIFETESTプロシジャ 概要:生存時間解析 構文 PROC LIFETEST < options>; BY variables; FREQ variable < / option>; ID variables; STRATA variable <(list)> <...2020.05.05プロシジャ
プロシジャFREQプロシジャ 概要 頻度を集計します。(要点だけの解説となっています。) 構文 PROC FREQ <options>; BY variables; EXACT statistic-options </ computation-options>; OUT...2020.05.04プロシジャ
tips(SAS)オブザベーション(レコード)を複製して空行を作る ここで書いたoutputステートメントを利用してオブザベーションを複製することができます。RTFファイル(帳票)を作成する際に、元データとしては空行が含まれたデータセットが必要になることがあります。 元データ data test; sort...2020.04.19tips(SAS)
Add-InExcelでアドインを作る(すでにコードがある場合) この記事でExcelでアドインを作る方法を書きました。これは自分でマクロを記録して作る方法でした。すでにコードとして公開されているものをアドイン化する場合の手順を書いておきます。 Sub test002() ' ' test002 Macr...2020.04.18Add-In
ステートメントoutputステートメント 理解が曖昧だと仕事中に無駄に時間を浪費してしまうのでまとめました。 ルール 「暗示的なOUTPUT」と「明示的なOUTPUT」の2種類がある。データステップではOUTPUTと書かなくても暗示的なOUTPUTが存在する。データステップ内でOU...2020.04.16ステートメント
tipsファイルを削除する前に確認ダイアログを出す。 Windowsはデフォルトでファイル削除前の確認ダイアログがでないので設定。 ゴミ箱のプロパティ Windows8、Windows10で確認しました。2020.03.12tips
Add-InExcelマクロの名称を変更する アドインの名称とマクロの名称が違っていると混乱しがちなので。これも単純に知っているかどうかの問題です。ソースをいじるだけです。 VBEでソースを開き、修正する 今回はアドインフォルダで既存のアドインを複製しています。C:\Users\xxx...2020.03.11Add-In
Add-InExcelアドインのソースを開く ExcelアドインもVBAで書かれているのでソースがあります。単純に知っているかどうかの問題なので、とくに解説はありません。 見出し 画像のボタンを押すか、「Alt + F11」でVBE(VBのエディタ)が開きます。 以前作成したアドイ...2020.03.10Add-In
Add-InExcelアドインのアイコンを設定する アドインが増えてきたときに備えてアイコンをデフォルトと異なるものに設定しておきます。 アイコン設定 クイックアクセスツールバーの設定画面 適当なアイコンを選択 変更されました2020.03.09Add-In
Add-InExcelでアドインを作る Excelでアドインを作るまでの流れを簡単に書いておきます。 マクロを記録記録したマクロをアドインとして保存保存したアドインをクイックアクセスツールバーに登録 の流れとなります。 マクロを記録 マクロの記録を開始します。 開発メニューの表示...2020.03.08Add-In
Power ShellWindowsでdiffをとる Windows標準のPower Shellを使います。Power Shellの使い方はこの記事。今回比較するファイルはすべてPowerShellを実行するフォルダにあるものとして書いています。 構文(エイリアス無し) Compare-Obj...2019.12.22Power Shell
SAS配列入門 SASでも配列はあります。冗長な記事になっていますが、入門ってことで。 構文 数値変数の配列array 配列名 変数1 変数2 ・・・; 文字変数の配列array 配列名 $ 変数1 変数2 ・・・; 要素数を囲んでいる大かっこ([])は中...2019.12.03SAS
Power ShellWindowsでgrepする grepとは、テキストファイルの中を検索し、特定の文字列がある行を出力するコマンドです。その際、複数のテキストファイルを検索してくれます。 Windows標準のPower Shellを使います。Power Shellの使い方はこの記事。 構...2019.11.30Power Shell
Power ShellPower Shellを使ってみる UNIX経験者であれば、Windowsのコマンドの使いにくさには困ることが多いです。WindowsにPower Shellが実装されてから多少は解消されているようなので、基本の使い方だけまとめておきます。 Power Shellの使い方 フ...2019.11.30Power Shell
tips(SAS)データセットをExcelで出力する SAS Studioで確認しました。PC版のSASでも動くはずです。 やりたいこと このデータセットをエクセルで出力したい。ただしクリップボード経由の方法は用いない。このデータセットはSASHELP内にあったもの(CNTAINER)です。小...2019.11.24tips(SAS)
SASグラフ入門(パラメータごとに分ける) 通常のデータ構造であれば1つのID(人物等)の身長や体重などのデータは同じ行の別の列に格納され(横持ち)、1つのIDにつき1レコードとなります。しかし設計によっては1つのIDで、身長で1レコード、体重で別に1レコードとなる構造(縦持ち)も当...2019.11.23SAS
SASグラフ超超入門 SASをやっているとグラフを描かないといけない場面があります。社内にすでにあるプログラムはたいてい高度にカスタマイズされていて、グラフを描いたことがないとさっぱりわからないので超初歩を書いてみます。 構文 proc sgplot data ...2019.11.17SAS
VBA複数のフォルダを開く(VBA編) VBAで完結します。フリーソフト等は使いません。以前紹介した「複数のフォルダを開く(バッチ編)」では開くフォルダの位置調整ができませんでしたが、この方法では開いた後に自動で等間隔でずらして表示されます。同時に複数のフォルダを開きっぱなしにし...2019.10.05VBA
tips(SAS)SAS StudioでExcelデータを読み込む SAS Studioでのみ動作確認できた方法です。クライアント版のSASで機能するか不明です。読み込む方法としては・libnameステートメント・importプロシジャ・DDE(Dynamic Data Exchange)が有名ですが、いず...2019.09.28tips(SAS)
tips(SAS)SAS StudioでExcelデータを扱う 自宅学習でお世話になることの多いSAS StudioではローカルPCにあるデータは直接触れません。(もしも方法があったら教えて下さい。)なので、ローカルPCで作成したファイルをSAS Studioの自分に割り当てられたフォルダにアップロード...2019.09.27tips(SAS)
tips(SAS)読み込むオブザベーション数を指定する firstobsで最初に読み込むオブザベーションの行数を指定できます。obsで最後に読み込むオブザベーションの行数を指定できます。 テストデータ data test_data; length NO 8.; set sashelp.class...2019.05.28tips(SAS)
tips(SAS)変数の並び替えをする 変数の並び(並び順、順番)を整える。formatステートメントを使います。 元のデータ proc print data = sashelp.class; run; 並べ替える data class_change; format name a...2019.05.27tips(SAS)
関数1つ前のレコードを取得する LAG関数を利用します。 構文 LAG<n>(argument)必須引数argument:数値または文字の定数、変数、式のいずれかを指定します。オプション引数n:ラグ値の数を指定します。 ※「SAS 9.4 関数とCALLルーチンリファレン...2019.05.23関数
ステートメント出力形式を設定する formatステートメントを使います。 構文 format 変数名 型;変数名:1つまたは複数の変数に出力形式を関連付けます。型:変数の値を出力するときに適用する出力形式を指定します。(※SAS9.4ステートメントリファレンスより要約) 例...2019.05.16ステートメント
tips(SAS)マクロ変数の計算をする ※SAS 9.4 マクロ言語リファレンスより %eval整数演算を使用して、算術演算式や論理式を評価します。%sysevalf浮動小数点演算を使用して、算術演算式や論理式を評価します。 整数の場合 /* コード */ %let a = 1;...2019.05.15tips(SAS)
tips(SAS)SEQ(シーケンス)番号を振る 構文(合計ステートメント) 変数 + 式 ;変数:合計を格納したい変数。式:加算したい数。 テストデータ 総務省統計局で公開されている各国の人口推移(&予想)のデータより抜粋しました。もっと抜粋してもよかった。 data raw_data;...2019.05.12tips(SAS)
tips(SAS)変数をまとめて欠損値にする 構文 call missing(変数名1<,変数名2,…>); <>は省略可能の意味です。 テストデータ data dummy1; input c1 $ n1 c2 $ n2 c3 $ n3; cards; aaa 1 bbb 2 ccc ...2019.05.11tips(SAS)
SASformat, informat SASのformat(出力形式)とinformat(入力形式)は非常に数が多いので詳細はマニュアルへ(「SAS9.4出力形式と入力形式:リファレンス」など)。 その中で仕事で使いそうなものをまとめておく。 日付関連 format(出力形式)...2019.05.05SAS
tipsよく使うショートカット SAS Ctrl + U選択した部分を大文字にする(Uppercase)。Ctrl + L選択した部分を小文字にする(Lowercase)。Ctrl + /選択された行をコメントアウトする。(SAS Studioではコメントアウトの解除も行...2019.04.28tips
tips(SAS)全オブザベーション(全行)に同じ値を追加する 自動変数を利用します。 元のデータセット data class; set sashelp.class;run; 追加したい値が入ったデータセット data add_ds; input add1 add2 $;cards;1 addvalue...2019.04.24tips(SAS)
プロシジャSORTプロシジャ 概要:データセットをソートします。重複削除などでも使います。 構文 構文 PROC SORT <collating-sequence-option> <other option(s)>; BY <DESCENDING> variable-1...2019.04.21プロシジャ
CDISCSDTMドメイン一覧 特殊目的ドメインSpecial-Purpose Domains ドメインラベル意味備考COCommentsコメントDMDemographics被験者背景SESubject Elements被験者エレメントSMSubject Disease ...2019.04.20CDISC
ステートメントdo-untilステートメント 構文 /* 条件が偽(false)のときに処理を繰り返す。 *//* 言い換えると *//* 条件が真(true)になるまで処理を繰り返す。 */do until(条件); 繰り返したい内容;end; 例 /* iが50より小さいとき(fa...2019.04.18ステートメント
ステートメントdo-whileステートメント 構文 /* 条件が真(true)のときに処理を繰り返す。 */do while(条件); 繰り返したい内容;end; 例 /* iが5より小さいときに処理を繰り返す。 */data do_while; i = 0; do while(i <...2019.04.18ステートメント
ステートメントdo-endステートメント 構文1 -- to,byを利用 do 繰り返し変数 = 開始値 to 終了値 by 増分; 繰り返したい内容;end; 例1 data do_end_1; do i = 2 to 10 by 2; result = 3 * i; outpu...2019.04.17ステートメント