スーパーエンジニア100年目!

エンジニアの働き方とか生き様とか。毎日を頑張って生きる。

SAS DOステートメント ループの説明

マクロ変数名を指定するか、またはマクロ変数名を生成するテキスト式を指定する。
 

【サンプル】

 
%DO MACRO マクロ名   i=1 %to 5 ;

   処理内容

%end;

マクロ名:
マクロ変数名を指定するか、またはマクロ変数名を生成するテキスト式を指定する。
i=1 %to 5 :
反復%DOステートメントと%ENDステートメント間にある、
マクロの部分を処理する回数を制御する整数を指定するか、
そのような整数を生成するマクロ式を指定する。
i=1によって、i変数には1が代入されていて、ループを繰り返すたびに変数に加算されていき、5でループを終了する。

railsでアプリ作成しようとしたら、「ActiveRecord::ConnectionNotEstablished」が出た件。

cloud9でアプリ制作完結させたらかっこいんじゃね?と思い、さっそく試してみた。画面内で、ターミナルコマンド打てたり、見た目も良いし、
なかなか使いやすそう。
んで、実際にrailsでなんか作ってみようと思った。
【環境】
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
Rails 5.0.7.2

rubyrailsは最初から入っているようで、あとはcreateすれば良い。はず。


rails new test app

rails s




ActiveRecord::ConnectionNotEstablished


出ちゃったね。エラー。記事見て作ってるんですが、ほんとならここで初期ページがでるんですが、エラーでました。

原因は、RailsのORM機能であるActiveRecordが、sqlite3の新しいバージョンに対応してないことが原因。
なので対処としては、 さきほど作ったtestappの、gemfileを開いて、sqlite3の項目を探して、そこを書き換える必要がある。

gem 'sqlite3', '~> 1.3.6'


こう書き換えればOK。
最後に、bundle installで更新しましょう。

sas university editionが終了するんですが。

f:id:hurikakeokok:20210121003819p:plain

業務でSASを使うことは多いのですが、はっきりってSASって不便ですよね。英語以外で第二言語として日本語を選んだわりに、日本語のドキュメント作成に本気に取り組んでいないような気がするし、SASというプラットフォームがないと使えない言語だし、そのプラットフォームも手軽に扱えず、お高い料金がかかる。
ちょっと使ってみる程度なら、sas university editionというものがあって、これでseahelpとか使って、コードを試してみることもできるのですが、これを使うのは少し手間で、めんどくさい手順でSASプロファイル手に入れて、virtualboxというツールで仮想環境を整えて、、、など、virtualboxHYPER-Vなど扱ったことない人にはかなり難易度が高い作業をへて、初めてSASが使えるんですね??これはSASも疎遠されますよ。
まぁそれでも家でも仕事のためにテストコード書きたいわけですよ。
そんなときにこのsas university editionは無料で使えたんで、重宝してたんですが。2021年に終了しちゃうそうで。
残念。
でも、その代わり、クラウドSASが使えるプラットフォームがあるので、それを使って欲しいそうです。
今までのように、virtualboxで仮想環境整えなくて良くなったのは、便利ですね。
さっそくつかってみたのですが、インターフェースは前のと同じだし、ログインするだけでSASが使えるので、かなり便利ですね。

SASで欠損部分だけのぞくとき。

f:id:hurikakeokok:20210121002336p:plain


SASで出力したとき、こんな風に出てきてしまう。
欠損は除いて、値だけ欲しいときに書いたコードをメモ。
proc sqlは便利で項目を作成したら、calculated使うことで、同じ処理内で変数を使うことができるので、データステップみたいに
複数処理のステップを書かなくて便利。いやーPROCSQL便利だなぁ。

proc sql;
create table dt1 as
select 
     "koumoku" = length$10,
    "name" = length$10,
   
from teble;
where calculated name ^=""
group by name;
quit;

プログラミングを学んで転職しようとする人。

実際にSEとして働いているけど、プログラミングはもちろんする。

けど、本当に大事なのって、報告連絡相談をきっちりとビジネスライクに行えるとか、仕事の回し方だったりとか、行ってる作業の進捗の管理とかそういう部分が大事な気がする。

 たまにpaizaでプログラミングを勉強して、転職しました、とかいう記事みるけど、それだけじゃ苦労するんじゃないかなーと思います。

プログラムはかけて当たり前。その上で、ビジネススキルがものすごく大事なので。。。

んで、SEにおすすめな本がこれ。最強の仕事術。はっきり言って、分かり易すぎて、嫉妬した。

 

便利な CALL SYMPUTX 値をマクロ変数に格納

変数値や値をマクロ変数に格納することが出来る。
マクロ変数を作成するときは%LETを使うけど、それ以外のやり方ですね。
使い道によるけど、かなり便利。

data test;

 length A $40;

 A = "aaaaa";

call symputx("macroA","A");

run;


%put &macroA.; 

【ログ】

aaaaa

windowsバッチの作り方。

業務で、作る機会があったので、メモがてら記事を残す。
使うのはいつもMacなので、WINDOWSのbatchファイルを使ったことはありますが、作る機会は初めてだったので、楽しかったです。

作り方はとてもかんたんだった。
プログラミングの素養があるなら、30分である程度使える様になると思います。
その中でもよく使うコードを紹介。

@echo off

一番はじめに記載するもの。
echoをオフにすると不要な実行コマンドが表示されなくなり画面が見やすくなる。

echo 

設定した任意の文字列を表示するコマンド。

pause 

実行を一時停止するコマンド。
テスト段階では、コードをみながらテストすると思うので、
作りながらの段階ではつけといたほうが良い。

rem

コメントアウト


変数の定義

set 変数名 = 値

set test = hello world
echo %test%

batchファイルをWINSCPに渡して使う際の使い方もメモもここで。初見だとわかりにくい部分なので(私は)

/parameter 引数1 引数2


windows.bat

winscp.exe  /console /script=script.txt /parameter %user11% %テスト%  

script.txt

open %1%

echo %2%

出力

open user11

テスト