From 75029a488f5c2dab82ce7bf7145b9dac0adfa141 Mon Sep 17 00:00:00 2001 From: "Bart Jablonski (yabwon)" Date: Mon, 9 May 2022 19:00:25 +0200 Subject: [PATCH] The BasePlus package [ver. 1.16] The BasePlus package [ver. 1.16] - improvement to: %LDSN(), %LVarNm(), and %LVarNmLab() macros. Big thanks to Richard DeVenezia! hash: 4CD3926B9842925C86B80B5B47B47BEA1FB9707826B545B9B4D52AE97BC3617E --- README.md | 4 ++-- packages/README.md | 4 ++-- packages/SHA256_for_packages.txt | 3 +++ packages/baseplus.md | 40 +++---------------------------- packages/baseplus.zip | Bin 82762 -> 82528 bytes 5 files changed, 10 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 48a9756..bafcdc0 100644 --- a/README.md +++ b/README.md @@ -146,7 +146,7 @@ SHA256 digest for macroArray: DF63B0E027827A82038F1C8422787A0BC569BA93104BA1778D [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/macroarray.md "Documentation for macroArray") -- **BasePlus**\[1.15\] adds a bunch of functionalities I am missing in BASE SAS, such as: +- **BasePlus**\[1.16\] adds a bunch of functionalities I am missing in BASE SAS, such as: ```sas call arrMissToRight(myArray); call arrFillMiss(17, myArray); @@ -164,7 +164,7 @@ format x bool.; %zipLibrary(sashelp,libOut=work) ``` -SHA256 digest for BasePlus: 0331C673052D5221DA98C5CC93295634D8A0BC62C7D2FEF9D0D85B0B2DEDE4E9 +SHA256 digest for BasePlus: 4CD3926B9842925C86B80B5B47B47BEA1FB9707826B545B9B4D52AE97BC3617E [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") diff --git a/packages/README.md b/packages/README.md index ffd560f..e8fc3c0 100644 --- a/packages/README.md +++ b/packages/README.md @@ -90,7 +90,7 @@ SHA256 digest for macroArray: DF63B0E027827A82038F1C8422787A0BC569BA93104BA1778D --- -- **BasePlus**\[1.15\] adds a bunch of functionalities I am missing in BASE SAS, such as: +- **BasePlus**\[1.16\] adds a bunch of functionalities I am missing in BASE SAS, such as: ```sas call arrMissToRight(myArray); call arrFillMiss(17, myArray); @@ -108,7 +108,7 @@ format x bool.; %zipLibrary(sashelp,libOut=work) ``` -SHA256 digest for BasePlus: 0331C673052D5221DA98C5CC93295634D8A0BC62C7D2FEF9D0D85B0B2DEDE4E9 +SHA256 digest for BasePlus: 4CD3926B9842925C86B80B5B47B47BEA1FB9707826B545B9B4D52AE97BC3617E [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") diff --git a/packages/SHA256_for_packages.txt b/packages/SHA256_for_packages.txt index 3e6c78f..20671bb 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,6 @@ +/* 20220509 */ +BasePlus:4CD3926B9842925C86B80B5B47B47BEA1FB9707826B545B9B4D52AE97BC3617E + /* 20220508 */ BasePlus: 0331C673052D5221DA98C5CC93295634D8A0BC62C7D2FEF9D0D85B0B2DEDE4E9 diff --git a/packages/baseplus.md b/packages/baseplus.md index 3c24ca3..1a8e0f0 100644 --- a/packages/baseplus.md +++ b/packages/baseplus.md @@ -55,7 +55,7 @@ --- -# The BasePlus package [ver. 1.15] ############################################### +# The BasePlus package [ver. 1.16] ############################################### The **BasePlus** package implements useful functions and functionalities I miss in the BASE SAS. @@ -272,7 +272,7 @@ Package contains: *SAS package generated by generatePackage, version 20220420* The SHA256 hash digest for package BasePlus: -`0331C673052D5221DA98C5CC93295634D8A0BC62C7D2FEF9D0D85B0B2DEDE4E9` +`4CD3926B9842925C86B80B5B47B47BEA1FB9707826B545B9B4D52AE97BC3617E` --- # Content description ############################################################################################ @@ -3593,23 +3593,6 @@ The `%LDSN()` macro executes like a pure macro code. `%ldsn(work.test)`, `%ldsn( work.test)`, `%ldsn(work.test )`, `%ldsn(work .test)`, `%ldsn(work. test)`, `%ldsn(work . test)`. -- if the user want to add an extra suffix to the dataset the `%ldsn()` macro - **has** to be wrapped inside the `%unquote()` macro function. -~~~~~~~~~~~~~~~~~~~~~~~sas -data - %unquote(%LDSN(WORK.some strange! DS name))_1 - %unquote(%LDSN(WORK.some strange! DS name))_2 -; - set sashelp.class; - - if SEX="M" then output %unquote(%LDSN(WORK.some strange! DS name))_1; - else output %unquote(%LDSN(WORK.some strange! DS name))_2; -run; -~~~~~~~~~~~~~~~~~~~~~~~ - The reason for this is a "bug" like behaviour of SAS tokenizer/macroprocesor. - See the following SAS-L discussion thread: - `https://listserv.uga.edu/scripts/wa-UGA.exe?A2=SAS-L;4b2bcf80.2205A&S=` - - macro calls of the form: `data %LDSN(); run;`, `data %LDSN( ); run;`, `data %LDSN( . ); run;` or even `data %LDSN( . (keep=x)); run;` are resolved to empty string, so the result is @@ -3671,23 +3654,6 @@ The `%LVarNm()` macro executes like a pure macro code. e.g. the following will give the same hash digest: `%LVarNm(test)`, `%LVarNm( test)`, `%LVarNm(test )`. -- if the user want to add an extra suffix to the variable, - e.g. to get a numerical suffix, the `%LVarNm()` macro - **has** to be wrapped inside the `%unquote()` macro function. -~~~~~~~~~~~~~~~~~~~~~~~sas -data test4; - array X[*] %unquote(%LVarNm(some strange! name))_0 - %unquote(%LVarNm(some strange! name))_10; - - do i = lbound(X) to hbound(X); - X[i] = 2**(i-1); - put X[i]=; - end; -run; -~~~~~~~~~~~~~~~~~~~~~~~ - The reason for this is a "bug" like behaviour of SAS tokenizer/macroprocesor. - See the following SAS-L discussion thread: - `https://listserv.uga.edu/scripts/wa-UGA.exe?A2=SAS-L;4b2bcf80.2205A&S=` - ### SYNTAX: ################################################################### The basic syntax is the following, the `<...>` means optional parameters: @@ -3751,7 +3717,7 @@ run; **EXAMPLE 4.** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas data test4; - array X[*] %unquote(%LVarNm(some strange! name))_0 - %unquote(%LVarNm(some strange! name))_10; + array X[*] %LVarNm(some strange! name)_0 - %LVarNm(some strange! name)_10; do i = lbound(X) to hbound(X); X[i] = 2**(i-1); diff --git a/packages/baseplus.zip b/packages/baseplus.zip index 311f4f880597ad4cc0bdb701bdba3e63b78689d3..18e626a700c2866f6efea844950a275596eee794 100644 GIT binary patch delta 17453 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 L2eG}x9_;@BCqC^U delta 17668 zcmZ{LWmsIj_br3FyL)kWcXxL$?kHimRIFhS&7!&;kHH4qs>gmFLwwmpwDF9x zTS<*O<0|p$g05FYSmdbU_j97|hSd+mH*ZQH6cbum4;YUhm2W=0-ZgTjmP(0nkIA~C zLjvImhuUGU*3wpL4fWBsnx`ATYpT!+>!Ms>&2aIaCw4cTAQlOu=rGABnnc`zq+VbV zD`Y^Eaz+Am?6ClG^djBi$qkjiX$iR$#9v^73-gp{Ej6XdN}eRe-@^r%ZA%p18wJ){ zY=$Yeg|?r%30J_wn7^pJwa9glUoFOY&C1(^XEnYJRsyFVkiYt1oY;zvCv zC+gqiUwF1@732A9$2X8@oV%B18DsNv(g1yk};6k}^DA7dnwpU@(5mJ5=rk5Hc zE0S`vBAnusvUAPLRW%^52JIa*4uffz=P#Q;Ro?8n&PGbmeY=X);)O9!5cWq%6`3e?6k+7B{56xi0x zOX-j-1q-eY6!?-s`^wAc77Dqd1lJDW`upZoZYv1k%m)-2abZ3cNKx@t!3Lx^+}pE5 zK+nq@phr9nD?6eT?G`^@Z64Oc!-wVO;P}le1-il%3g-#U&Tz}8C>FY2>Mf!BK9#jk zha)`M$G!Nd`Awpq*qzVIYfx%dHk!AXLau5ei(D4Fs@ItxiOa*Wy@KY6AJ?@#^+thh zr9;!TL?s2Vodg8-2}qvaL4_6`1x>ju;*(SBz~J||i>hq&4KFgNKi0%Hpsqe5Mwn%} z!|P`1Rg0Ckslr%nwy6qGW5P(87Ea@uPs2hO4-I@YB^yDcRvS%QM94At!pJkZGiD-- zL_(lE!xQGZvY|aXGe%kjZL<9lAEho?5Y#s0xXN!}52tLkylQ^L#dBw>7|ZJZxn&k` z0Hi)JpJ4oLTcDbAhU(w*At0Ntt_Y)jPxKVb_%!*U5|y`3AaVknAwIIw z%Pw#3^T9kQf-7t*YQkLF!@28Th{4jFnXv{GThB-1Ab#G>lf|1L0~aLCBfRdKc?Cwy zN(^;l#qfTs+h;n!q^<9!+Ckc2LS#5V0f@@$0#l~*=XD7+W^)M-C$Y^t6>rS+V z?2S)hw~;q+xla(>VYcRUIaPtZ&5>pqVG&*E#Zezxw7SSdPl%P8?s}3utGxOWM`F9VZ$=(Ey!PHx(7?dzWuA9C`y&^G^gRNq8#1xj(oLb3?ASOG1C}kW0p3L1+Sw zFqmn4B@~MI773rhqi^CfAppNNam@dLGgjbw-bNT%x%Jm3&576ZZt@+w#LJ%OM&ha7 zC*#oA2f#JI{==fW@Cu87k`X0aELnH{wd1Dxz{t;LDJ|d^i=edLW16T+aq}e;nZ*ll)R8y4n$A5P3*uMt(O zF}49ns|HunDl2QE$B;S8Fubfcp2swi4H<~D&KL(SOB4@~&Ransf znqf<&&K87-Vp2G8jj84NorHe$bLIOvW1~xHbz)iO`Mk3v;iOM!22Nzw6_QI4@!!sS z>(3oqv@>5e_fpOrUl9JazSXk9G=jtaS?H+ZBZ<)P568 zF_23ny_){=yqLt6iwg^R=5yBc0OfgrT7Qzf)aUFEMXEwuC2i<)%Njw43B$01V2igZ z=0y%WZcU`PE&S`errx5lHfq9ZXNK1#MCh`D!@~(Tcb&8vL7OWJ?VbvumV#+11nr&^ zZcxi;q2UI&;`&2%s*^cga5x-F@2<2p8YVrCB;r^s&-GEFTkSL8z z3p8|F;=%MkS9s|rs=-qjQX6n=a9|r@P_*V+{=o7v+|$#Ott%y%K$k5gLnPoyjtiP# zd152>L_EzCe1LEN;9!k@n5$5dMUpG5bFd{b_Q{jrQ*ZC(v38|#XWKShV>9tDVCeQi zKSiU-K-B>ek4(F?7p@Rl3{20qqIU;V0}wYP#v3+XbN6TZI)+9U_Ps9(z<@m=;ZJCN#S#Q3t)W8 z*h!!7t-OUQ*~|7SS50%`E|jLWZbG9k$*oSYi|D*I?+qW;@=YvhC=c zp`V+@UhMFUeowaRd3=|Mh{JdD*lxDw9}y{4A}I!cVbg4nxOseNJis-N7_rM9sL&|J z!*qiQj&=uqJY-wOu^aLZPXCBBt_u8ENdFsOKrf^Nw_7Y4P3-K7SKB2=x3J+APV`j@P|jPw(%?;6aEq!&~Qd(|4Y^rF7w+{LIj=8Y2!FeU(NDsQI9#n5*&h=BRiCL;O6y#?=Y0GgXsnOGoZWs0I^Iu_BZ zSCfn?`?xbKMhhP{glsdmQ^iD6&&FrZ*l`DlME(!%ocl5WAuYpImp4Aw9Dthhhwz4>izkTjWWO8Fpv!SO)CDrM*OajaMwc(3*6aGZ9*2;`~nj zb#ZZt0P$YC$WSrQD$Y@1I&rwO_pWG$5D7IqGe@6cq;38ZQU2$e!2+e)s=+eXyl@`- zXZ4zym8`x%IZS%o&b=#k0m)PN68EOiMuLxYnpJkIitudSaGGtvjUWai(_}K;tjWV$ zor@1<<}~kzM%px<3DbO-wXKF`;#1S^z8Q!nQBMppPta*@+&+T0gXma{aVtoNP_0e! zh|e~7jC-THlgN_Hm#6SdIgGn{Oy#iBotCy)WOFN|pV$vFTKXiT{VHaZ{F+>%NHN=R z^wO(Z+HfV1Ke{>rDH3oldEG+4l8n#J^$S}ZKhuE0dx_e8Nd_}p#x9v|LP8$d7>`OJ zS!TWCc}ZkUyl?cLQ)W3@G(U;qma-%Bn;0{t#9*gNQWc!(4-~J0I;=GZ8h(H`!ka3} zDp)TIe9UCaZFGfGmZaCbfxMJuO%VS&wd>mLO{3)cNvqTzSTlUaV8}kWmdSWTRGf(3 zSU^nHz_uvwFUv)$GxrG&u^kCc+*Kmd%7fQ=b7+Jh;{$K7@kT@UEwFXGM5 zFDq!V>U(hxG`Eh$IN7S`^Vr*PR7_iFDZa}pwc2eN8jn0)vw3l!;J=&VKSr^OhBmQv zFWAxOMdNb%mUW~wB7?!_lxic#s>oyCF#9M#y0vMD2)p<-55ADeLOu+Lv%?f-SNB5? zBP5dMos5YhRcInd&LreZ2mVY@!=W2VjqXebyKrqY&^f?k>7^9yrg(T(2&<_LCkxj4 zS2Sx~2)8-nsY6N4vKxmK(1ne4GMV|oU^8w1BKy=-r*JCbo^|7KK#I5GhlouPrr7Z zdoZI@YqW->N>iOnto}$@%KTDCIYdS$qM@yL`^iI z_*;iU-n*U0`i;%TAS8UFW^l6PUf**;?2J}?_z{2-Tv+G*J9#`@=0%vg@qLPE5eL53 ziLUJLPDDmYJEjZJ_f0u7w)7Du!f&KDu#qhSKuHjqB-+oR0?RU9tws3gVVLg1WJ##H z?lFgN;;fyF?}GWO@Hx4|hS3e$sQJ`zgnE<{zNQs8fOBt^N#0oDD;Ev!(4{ruwMUQZ z>C+OWvbd;y*WAOqwWmnp@Qc~#;8K%LuZPWq3cf&i-bKLaxvDs@!_7@3gkh4Zm>O+_{54^L!1K*=g{q7mWi{ zXBJ97Q}*`o_0Qw?_r7jOxmobq;wH!*vRpj;f|;SY;s5R7>9UKWQLLwWEAUW6I_bC2gQO`7339uq1KBCw-rJS9w z-F$=0cfVGr5tyY+660}jfbDiKg&7%ObxrFZ?zVO#yL~pqjS1-6yOZV99GA{8_nI#a zv(b6xdGRI!=Qm@#S1g$_xRlmsUFt*)lyc^YxV0r(!?w50aijISs~h2W#|16H+6#W8 z1a6|OzS}s)klSE(_+9PdHbByZ)fi^K^~s4}qGHxmidbo#+m<`W4Okt8A%{ppxb;bK z=A&X8BhzC)FPa-eEU(E@SS*dld9~?5o6;hO0Z^EN7~nz`DLm*~Wf)grZWA3gpQEyc zIuB#{5fwSc(HpU_hl*H?gF^8+Dlqh0kOew>Dgs|L^n4TKEmr{xnF+adM%$ROjI7}i zO=j80C8Fr%xchiH0FYxGV68$$nguaYEGL4(3udSdCPN6e*|>^uAW?zv-$CoRSc3vLhgZah})?UT(l- zZnXA&+$<~qVHw!KZ^{ttlx3$^s(jY}D5Mi$0dZBw#sXcEl+SiJBmsD!g zJ=C$_81{SVv`BJximDrKO6S zE0C-YPVNO>7H;=CfjJ{sZF&dkB64&htVqzfj2638QS435Mwy%WN%T*w!l{ z+;UIyrcDP*E79>^vQt}{m4uB-M)!5Peo%5BPu--vV{vwZ2rI^pMqHm>^&9W88Y6pu z3k`1^V@iiF8;>Jq%juqSPo_p$lv6TGMpz0MD?24d=`tBxp~yhMK9zZ|h`b*_1Tvv-YGjDvhftQCDIsLE^D5hGX? z9=3l^Kp1E6NG*3~$D+EGgGDI6XNli@Ndlvs8BYn|X$GJI|4DRm_zhJwH?RhPl}D4H zLa3Iou?MKt(I<}jakYe*_((tx+}+v|!LBnR4mV(8LX#n`Wx&CKA%Di&9QP~|a)YoE zYaLuGxPvd$;N9(r{CdZLosF@ALED>aN@e{4r=Yu%=_+)Fu!GAY3D&OgN*7JW%zx0i z(Pj-Rl=2md+#4~UgX#dPY)3R7yl8A)>ccaA@vA>(eo&HMGAV$98qEYg^@Ed4PUJ$G z&mc+}OKoLhm?7saC3Gua3@@Xc3n%3o98@#TOdIfn>8eeU9CDB@ za%CQ%jrM?lKPk7GF6p);2Ngh+Ad{asf4)?SY0e|4Wz7n~po+^IF5*(U&T;a3AllVa z>e5ax&JU*48r)hfU+PpvdJaqs%kfoxD=%W>Kc8>$LhNswzu5?FpWaH3p zorDa@PpR)vOrnkRBTtuRRpE`25Jh#)+id2wML_NvJ1$)E3X=E9PnP+p9qqxV+DW1i zN7|bE|9Zzf)qUBd?T?5(KJ+;`#JAL&Q~l6u3x|Eawv@a7w*(r#1Ufcf&*c{o^E1@{ zEIYa&m|~5UcX?hpiFCw_K&NFc)Mv+zmyf9Fa$Ew#Tj?h^vrRU9BURmi4k4edn#D;RF+>~r6HRo7NpzWh4i1r^}CX? zM5`_yw!>18rSu3&IwLAojJ*&cN###(4j!^TB9)$wQ#5VmQt=hB7WZ*5o=5MT<)R31Q=g%&>nv-d(S-_TP>7uhiG%9peR!~4rU&z=* z`~oZ%<#CJ*aj}Z7hI=5dAi7Ew1g1R%E0b){GW_RCt42slZ%jT)DF>*-W7^WyDN8_i z(2e%~dgrW!iNG1y7(P2w<34M+lw($dR)U{U{6a7KEfhA91<-0C{q-DlVa@K{l-rXybvscPNJW(|~cL-!Qd74xtn~u9&QcsuqeB!d^Gd zV%?n(^&zrfP*$kA0O1;_zjEN*I+09Ba75#@!lQMF=-%x&Z~Jc*Zf=Y}3l=$xnQo%S z@rUz}NS#z=aRLQoLBNW3|HJWG1!#i!Eah)XDCGm&7yj+)IEkM0O}fa)hL^}qGum)w z1d2b@An9&MP>7&W874*cDPnh?WhWdvA-0q%RLI6B39g?FugF3q7$d2`^Ot!bMK;0& zXu58R!Fx=EGQ|(V`Oqb`$BZ(@x1%<$cCWkAjg^Fr1Av($ev+Sw*#vCdQBml7Smaho zC~JmM#(ONt4>hV%GMXtv)@CYKAR&8c3j-hp+AUyoi=4xy`r}f!(K|)q;xGsWVllu4 z;gAch8=!;N_k}#g9D^6Lw1lq?h66vu086`QDswSH<7FLf=2_KSrjB5E3TvT~g? zJ!V!kbp9aUfVuO*4};<)@*UX=5se!Lv4(K$|iXRWs)xq zZUB`qT9;C=h-7}HQfc0hxt1y@MU+;nC#csXNwPT%E_`n$$-K%KFF`%qG&xu;rz7qw z1ULV7K6qfC>t34CvKkVx_qsN47#1#CQgaoWP{F6DS7l-%r^L#i24Op>XMZ94L3l_d zQ;GLeI_5E+6v!c7LpX@ObLP_3{OyJ)XaKlVPO9m^4)Usj-SR^&$~gSATk5dq>V~al zX$qBMA<->b{|O0ZG4FNrHf5+SZ)aO6X?eXH1NdSb(b?^T>I#PvvpF$0rPpD{B0z~l zFp;@XnB6meTHn;08fB#sHRP=EX^3qnKrJL8L-IK&By#7;ZW(KN#ny2q+L6I0Xbi|# zvfzP(wLOMB7r(z!cG+%jKo^IsJ_|2enx3v+S*4R~lUyKDGV^p0ax5fJq%j9y&c<0( zxQK7Sg(YKC4;{NX0TreVO18b_uR4wbhp}w=HHBT5f0UC_%7rEp;eLcCqX)qWYQc&V!3nyP@={Ofqjm*x^(H!5{hOc>buSIPE|y9WyPM zu9yJ|7jjvK?Ycv2_r7u6QQOT)iS_`h-b4!(qW7%BSTb$|pj=;C>h89Zs#$SyWB#hS zrr=*4=m(MCDocuIs_BH0#Ge-LTeVRiqHf*(C z!mNGRo#oY0@0a2ZW7qR>+6NXE;ClQ;(f55`-}h3w$8fp{Zs{X{H;^a`XT>%fUKn5_ z5x_)4@E~fTMLC^GzXY1r^97FgAecyr!!kUC{}S0yj*QoL>W$fa2bU)Af8gO;1nifw z#K=bb?dzYN&%?(T^uSBbd@kkeI^y@YS#KaXv{tp`aiP|Kj5^1b)A|s7yJQ{vF$zVOFf&EcA_O9>vU zm?zoM4~gSEFc(Eo@=Jsq-&ws*U`}f9w`xufI40)D5BO-I^pFwf7#ZNK&F~K7Dxsuz z{!zAs1D0XkVt17wpt-hYXOS2nKyHL(T5!JMM{?rWLP~lF0=jMtmM)QHHIOS6u72EM zm1o1av&YzHjgshenD`p2k=;b~0GhGhXaiQik8r-n*y1TNEN0Sin+Nd`V>H4z7_lR_ z>L^KlEnf)Fbsj8GhRG3I&*g~Wsj^a*igcdpi~V$Bj%whiS$b+U6o6s zwQRnk13PsI=?L1OQz8Z0RKlAxTZ zcJA;Of-g1pPRGFQH=J8Uhvu>$TUlr*+=^kxmL$jYZ=N~swt*|agpa}}pH=jK>MKA(d3{!2o-T{|GNjNvB#WsK6 z1`9Y=wbMgx&^_CPHt#%$$&Q=0QG04JgtD+F$4c?#Eci95^7Z L)T5zcYiW_;3=luOv=yaQw6P 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 WuM(+r|0s)!0q~&h*S*vzdVru