OL、SEになる!おぼえがき★

関西人OL。SEの技術力獲得のためのおぼえがきまとめです!

SAS 基礎 データの読み込み、書き出し infile file input cards

 

データセットを作成したり(読み込んだり)、

外部ファイル等に書き出すstatementについてまとめていきます。

 

◎データセットをstatement内で作成する場合

 

データセットを作成したい場合のキーワードは、"infile", "cards"です。

直接作りたいデータセットの型やフォーマット、データの値をstatementの中へ記載していきます。

 

例)

data test ;           

  infile cards ;               /*cardsを使うときは省略可能*/

  input Num $ Name $ Age ;     /*変数名を指定(後ろに「$」をつけると文字型、指定しない場合は数値)*/    

  cards ;                      /*「cards」の後ろからセミコロンまでをデータとして読み込む、改行で次の行*/   

010 Keiko 34

020 Tsuyoshi 22

021 Tatsuo 23

;

/* 空白区切りでデータを指定 */

run ;

 

 

例えば、上のような記載方法で、変数名、型、そしてデータの値を記載します。 

これを実行するとアウトプットウィンドウには以下が出力されます。

  

f:id:omihosam:20161218183038p:plain

 

 

とこのように簡単に作りたいSASのデータセットが作れます♪

inputの後ろに、作成したい列の変数名(文字型の場合は、さらに"$"をつけ、)

数値の場合は特に記載せず、作成列順に記載していきます。

 

そしてその後、"cards"のうしろに実際にいれたいデータをスペース区切りで記載します。

 

 

スペースが入ると違う列のデータと認識されてしまうので注意が必要です!

 

というのも区切り文字がデフォルトでスペースだからです。
スペースを区切り文字としたい場合は、         

infile cards dlm = ',' ;  

と記載すればカンマなど他記号を区切り文字として
スペース区切りのデータを作成することができます。

 

 

また改行を次の行とみなすため、改行した分、行が生成されるため注意が必要です。

(空白行があるとそれも1行とみなされ空白行のデータが作成されます。。) 

 

 

次に、外部ファイルから取り込む場合です 

以下のような中身の外部ファイル(sample.txt)を用意します。

 

 

f:id:omihosam:20161218184905p:plain

 

こちらを以下のように記載するとテキストファイルの中身を取り込むことができます!!

外部ファイルのパスと読み込む変数を以下のように指定して実行。。

 

 

data test2 ;           

  infile "c:\sample.txt" ;         /*外部ファイルのパスを指定*/    

  input Num $ Name $ Age ;         /*読み込む変数名を指定*/        

run ;

 

 

最後に、◎データセットを外部ファイルに出力する場合です。

 

 

出力したいデータセット名、外部ファイルのパスを指定します。

出力する際は、入力のときと違い、違うワードである"file"と"put"を利用します。

 

data _null_ ;                  /*データセットを作らないように"_null_"を指定*/      

  set test ;                     /*出力したいデータセット名*/    

  file "c\sample2.txt" ;       /*出力ファイル名*/            

  put Num $ Name $ Age ;             

run ;

 

上のようなステートメントを実行すると、出力された外部ファイルsample2.txt 

は以下のようになります。

 

f:id:omihosam:20161218185003p:plain

 

 

◎その他オプションのご紹介 

・データを読み込む際に、フォーマットやlengthを指定することができます!その場合は、"informat"というオプションを利用します。

 

例)

data test ;            

  infile cards ;        

  informat Num $20. ;        

  informat Age 3. ;        

  put Num $ Name $ Age             

  cards ;                        

010 Keiko 34

020 Tsuyoshi 22

021 Tatsuo 23

;

run ;

 

と簡単に基本的なことをまとめてみました。 

テキストだけでなくexcelやrtfへも出力は可能ですが、それはまた今度記載しようと思います!!

 

 

 

※実行にはSAS University Edditionを利用

くわしくは↓

 

 

SAS 基礎 縦結合(set)、横結合(merge)

  

Base sasの基本であるdataステップでよく使われる結合に関しての覚え書きです。

縦結合(set)は縦積みに、横結合(merge)は横方向に結合する処理構文です。

 

◎縦結合(set)

★基本構文★

 

data データセット名(出力);
  set データセット1(入力) データセット2(入力) ;         
run ;

 

★オプション★

・keep : 指定した変数を残す
drop : 指定した変数をはずす
・where : 条件を満たす変数のみ残す         
・if : 条件を満たす変数のみ残す

 

 ・sample1

f:id:omihosam:20161213225532p:plain

 ・sample2

f:id:omihosam:20161213225539p:plain

 

これらのデータセットを単純に結合すると、単純に縦積みしたデータセットができます。

data test1 ;
  set sample1 sample2 ;         
run ;

 ・test1

f:id:omihosam:20161213225556p:plain

 

本当にそのまま単純に縦積みで結合するので 「ichiro」という同じデータが重複していますが、削除されずそのまま縦に結合されます。

多くの場合はオプションつきで構文を使います。

 

◎「keep」を使うパターン

指定した変数のみを保持したい場合に使います。

data test2 ;
  set sample1 sample2 ;         
  keep name sex ;
run ;

 ・test2

f:id:omihosam:20161213225610p:plain

 

 ◎「drop」を使うパターン

 dropで指定した変数が削除されます(保持しない)

data test3 ;
  set sample1 sample2 ;         
  drop sex ;
run ;

・test3

f:id:omihosam:20161213225619p:plain

 

 ◎「where」を使うパターン

条件を満たすもののみ保持(残りは削除)

data test2 ;
  set sample1 sample2 ;         
  where sex = female ;
run ;

・test4

f:id:omihosam:20161213225718p:plain

 

 ◎「if」を使うパターン

whereと同様 条件を満たすもののみ保持。

data test2 ;
  set sample1 sample2 ;         
  if age >= 24 ;
run ;

・test5

f:id:omihosam:20161213230135p:plain

 

◎横結合(merge)

★基本構文★

data データセット名(出力);
  merge データセット1(入力) データセット2(入力) ;         
  by キー(結合の基準となる変数(複数可))
run ;

★オプション★

・keep : 指定した変数を残す
drop : 指定した変数をはずす
・where : 条件を満たす変数のみ残す         
・if : 条件を満たす変数のみ残す



 ・sample3

f:id:omihosam:20161213225532p:plain

 ・sample4

f:id:omihosam:20161214002537p:plain

  ・sample5

f:id:omihosam:20161214003329p:plain

mergeを使う上で必ず必要となってくることは、

結合するkeyでsortしておく必要があるということです。

 

 sample3とsample4を単純に結合すると。。

/** keyでソート **/
proc sort data = sample3 ;         
  by name ;
run ;
proc sort data = sample4 ;         
  by name ;
run ;

/** merge処理 **/
data test11 ;
merge sample3 sample4 ;         
  by name ;
run ;

・test11

f:id:omihosam:20161214002921p:plain

このように結合します。情報がない部分はNull(欠損値)となります。

 

次に、sample3とsample5をキー二つで結合してみます。

/** keyでソート **/
proc sort data = sample3 ;         
  by name ;
run ;
proc sort data = sample5 ;         
  by name ;
run ;

/** merge処理 **/
data test12 ;
merge sample3 sample5 ;         
  by name age ;
run ;

・test12

f:id:omihosam:20161214003340p:plain

このようにキーがすべて一致したものはすべての列に値が入ります。

オプションはset同様絞り込みや条件付きで結合する場合に使用します。

 

 

家でも手軽にSASの勉強♪ 無料 SAS University Eddition インストール★

 

 

会社勤めをしているとあまり気にはなりませんが、

SASのライセンスってとても高いんですよね。。

 

 

目が点になってしまうような価格設定。。。

SASの資格取得や研修もめちゃめちゃ高いです。いい商売ですなあ~~

 

 

とそんな、お高いSASを手軽に家でも勉強できる方法をご紹介します。

 

SAS社から 

SAS University Edition

という無償のソフトウェアが発表されました。

一度ダウンロードしてしまえばオフラインでも使えます。

統計入門から高度な分析まで幅広い用途・人に対応したソフトです!

 

 

初歩的なBase SASを勉強したい私にもぴったりなソフトでした♪

SASの技術力は今後、ますます必要とされてくると思う知識です!

知っていて損はないかと。。

 

 

 

では、手順をざっと・・・

 

ダウンロードはこちらから↓

 

 

www.sas.com

 

 

URLを開くと下の画面が、、

「今すぐ入手する」をクリックします!

 

f:id:omihosam:20161212125144j:plain

 

 

クリックすると、以下のポップアップがでてきます。

今回はローカル環境で使うため左側の「ダウンロード」して使うを選択。

(※ダウンロード・インストールしたくない方は

  別のSASを使用できる環境があるのでまた別記事でご紹介します!)

 

f:id:omihosam:20161212125248j:plain

 

 

次にOSを選択、自分の端末の環境が対応しているか確認します。

 

f:id:omihosam:20161212125812j:plain

以下条件を満たしている必要があります。

Windows

Microsoft Windows 7、8、8.1、または10

64ビット・ハードウェア、最小1GBのRAM

Microsoft Internet Explorer 9、10、または11 または Mozilla Firefox 21以降 または Google Chrome 27以降

 

Mac

Mac OS X 10.8以降

・64ビット・ハードウェア、最小1GBのRAM

Apple Safari 6.0以降 または Mozilla Firefox 21以降 または Google Chrome 27以降

 

LINUX

Linuxオペレーティング・システム

x86-64ハードウェア、最小1GBのRAM

Mozilla Firefox 21以降 または Google Chrome 27以降

 

 

 

わたしの端末はWindows7なので

そちらを例にご紹介しますね。

 

 

 

まずは、SASを実行するための仮想ソフトウェアを

インストールします。

 

Oracle VirtualBox for Windows

Downloads – Oracle VM VirtualBox

 

→すでにインストール済の人は飛ばしてください。

 

f:id:omihosam:20161212130340j:plain

 

URLをクリックすると、この画面がでてくるので、

それぞれのOSに対応したものを選択!

→ちなみにWindowsでは117MBでした。

 

f:id:omihosam:20161212131459p:plain

 

 

exeのダウンロードが完了したら、

インストールしていきます。ダブルクリックでexeを実行し、

 

f:id:omihosam:20161212132610p:plain

 

Nextをひたすら押していきます。Yes,Okと選択するとインストール開始。

後は表示されるポップアップにしたがってインストールしていきます。

 

この画面が出てきたら完了です!

 

 

f:id:omihosam:20161212133024p:plain

 

 

 

次に、SAS Universsity Editiionをインストールしていきます。

以下からダウンロードしていきます。

 

https://login.sas.com/opensso/UI/Login?realm=/extweb&goto=https%3A%2F%2Fwww.sas.com%2Fstore%2Fexpresscheckout.ep%3FstoreCode%3DSAS_US%26storeCode%3DSAS_US%26item%3DDPUNVE001_VirtualBox&req=ph

 

f:id:omihosam:20161212133232p:plain

 

 

 

SASのプロファイルをもっていなければ作成し、もっている方はそのままログインしてください。

作成は右側の「Create profile」から作成できます。

 

 

f:id:omihosam:20161212133455p:plain

 

 

ログイン後は規約に同意し、すすんでいきます。Shipmentが出てきますが、

無料(0.00USD)なので気にせず、以下の「continue」ボタンを押します。

 

f:id:omihosam:20161212142757p:plain

 

 

ダウンロードが始まるので、完了するまで待ちます。(2GBあるため時間かかります。。)

 

 

f:id:omihosam:20161212184854p:plain

 

 

ダウンロード完了★

あと少しです!

次は今ダウンロードしたSAS University EdditionをVirtualBocに追加します。

 

 

VirutualBoxを起動し、「ファイル」から「仮想アプライアンスインポート」を選択します。

 

f:id:omihosam:20161212185803p:plain

 

 

インポート画面でさきほどダウンロードした「SAS University Eddition」を選択。

 

「次へ」で「インポート」を開始します。

完了したらこのような画面になります。

 

f:id:omihosam:20161212190708p:plain

 

 

この後必要な操作として

結果やデータの保存先フォルダの設定をしておきます。

まず保存用のフォルダ(myfolders)をどこでもいいので作成してください。

 (どこにつくってもいいですが、最後は「myfolders」という名前の必要あります)

 

そして、以下SAS University Edditionを選択し、

 

 

f:id:omihosam:20161212191817p:plain

 

 

「設定」→「共有フォルダー」から右上のプラスマークを選択

 

f:id:omihosam:20161212230423p:plain

 

でてきたポップアップにパスを設定!

自動マウントのみチェックしてOKを選択。

f:id:omihosam:20161212193344p:plain

 

 これで設定は完了!

 

 起動すると時間はかかりますが、こんな画面がでてきます!(怪しめ)

以下に出てきているURLにアクセス!(chromeでもfirefoxでも可)

 

f:id:omihosam:20161212230506p:plain

 

 

起動するとこんな感じの画面です!!!

 

f:id:omihosam:20161212231723p:plain

 

とこんな感じでした!