From c126e7c0a3a32ed1b13234215565240ea16fe3df Mon Sep 17 00:00:00 2001 From: Bart Jablonski Date: Thu, 1 Jun 2023 17:04:12 +0200 Subject: [PATCH] The BasePlus package [ver. 1.26.0] # The BasePlus package [ver. 1.26.0] ### New Features: Two new macros were introduces in the release: - `%findDSwithVarVal()` - `%getTitle()` Documentation updated. --- README.md | 4 +- packages/README.md | 4 +- packages/SHA256_for_packages.txt | 3 + packages/baseplus.md | 349 +++++++++++++++++++++++++------ packages/baseplus.zip | Bin 269206 -> 275492 bytes 5 files changed, 292 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index 5e768da..9d26c5b 100644 --- a/README.md +++ b/README.md @@ -224,7 +224,7 @@ SHA256 digest for macroArray: F*85E3BE4D163AC5223B6EC9D3C25C46564A656E3830998B45 [MacroArray in SASPAC](https://github.com/SASPAC/macroarray "MacroArray in SASPAC") -- **BasePlus**\[1.24.2\] adds a bunch of functionalities I am missing in BASE SAS, such as: +- **BasePlus**\[1.26.0\] adds a bunch of functionalities I am missing in BASE SAS, such as: ```sas call arrMissToRight(myArray); call arrFillMiss(17, myArray); @@ -248,7 +248,7 @@ format x bool.; %put %repeatTxt(#,15,s=$) HELLO SAS! %repeatTxt(#,15,s=$); ``` -SHA256 digest for BasePlus: F*2A4F3953EC56DB914024457F74286D565C23DCF220FF151040BDB704FD8DDB06 +SHA256 digest for BasePlus: F*B3CACDA32A5E70940E667DCA859483BD76DB082D19BAF326F28A580226DDD962 [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 6db2fc2..b429cb8 100644 --- a/packages/README.md +++ b/packages/README.md @@ -86,7 +86,7 @@ SHA256 digest for macroArray: F*85E3BE4D163AC5223B6EC9D3C25C46564A656E3830998B45 --- -- **BasePlus**\[1.24.2\] adds a bunch of functionalities I am missing in BASE SAS, such as: +- **BasePlus**\[1.26.0\] adds a bunch of functionalities I am missing in BASE SAS, such as: ```sas call arrMissToRight(myArray); call arrFillMiss(17, myArray); @@ -110,7 +110,7 @@ format x bool.; %put %repeatTxt(#,15,s=$) HELLO SAS! %repeatTxt(#,15,s=$); ``` -SHA256 digest for BasePlus: F*2A4F3953EC56DB914024457F74286D565C23DCF220FF151040BDB704FD8DDB06 +SHA256 digest for BasePlus: F*B3CACDA32A5E70940E667DCA859483BD76DB082D19BAF326F28A580226DDD962 [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 c52f28a..6af63f6 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,6 @@ +/* 20230601 */ +BasePlus: F*B3CACDA32A5E70940E667DCA859483BD76DB082D19BAF326F28A580226DDD962 + /* 20230526 */ BasePlus: F*2A4F3953EC56DB914024457F74286D565C23DCF220FF151040BDB704FD8DDB06 diff --git a/packages/baseplus.md b/packages/baseplus.md index 7ee8ac9..a3baefc 100644 --- a/packages/baseplus.md +++ b/packages/baseplus.md @@ -61,13 +61,16 @@ * [`%workPath()` macro](#workpath-macro) * [`%translate()` macro](#translate-macro) * [`%tranwrd()` macro](#tranwrd-macro) + * [`%findDSwithVarVal()` macro](finddswithvarval-macro) + * [`%getTitle()` macro](gettitle-macro) + * [License](#license) --- -# The BasePlus package [ver. 1.24.2] ############################################### +# The BasePlus package [ver. 1.26.0] ############################################### The **BasePlus** package implements useful functions and functionalities I miss in the BASE SAS. @@ -218,7 +221,7 @@ Recording from the SAS Explore 2022 conference: [A BasePlus Package for SAS](htt **Example 11**: Long dataset names. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas -data %LDSN( work. peanut butter & jelly time with a "Hot-Dog" in [a box], popcorn, and s*t*a*r*s (drop = sex rename=(name=first_name) where = (age in (12,13,14))) ); +data %LDSN( work. peanut butter & jelly with a "Hot-Dog" in [a box], popcorn, and s*t*a*r*s (drop = sex rename=(name=first_name) where = (age in (12,13,14))) ); set sashelp.class; run; @@ -267,70 +270,84 @@ run; %put %filePath(f); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +**EXAMPLE 19** Get titles: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + title1 j=c "Hi Roger" ; + title2 j=l "Good Morning" ; + title3 "How are you?" ; + title4 ; + title5 "Bye bye!" ; + + %put %GetTitle(1 2 3 5, dlm=s, qt='') ; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --- Package contains: -1. macro bppipe -2. macro deduplistc -3. macro deduplistp -4. macro deduplists -5. macro deduplistx -6. macro dirsandfiles -7. macro functionexists -8. macro getvars -9. macro intslist -10. macro ldsn -11. macro ldsnm -12. macro lvarnm -13. macro lvarnmlab -14. macro qdeduplistx -15. macro qgetvars -16. macro qzipevalf -17. macro raincloudplot -18. macro repeattxt -19. macro splitdsintoblocks -20. macro splitdsintoparts -21. macro symdelglobal -22. macro unziplibrary -23. macro zipevalf -24. macro ziplibrary -25. format bool -26. format boolz -27. format ceil -28. format floor -29. format int -30. function arrfill -31. function arrfillc -32. function arrmissfill -33. function arrmissfillc -34. function arrmisstoleft -35. function arrmisstoleftc -36. function arrmisstoright -37. function arrmisstorightc -38. function bracketsc -39. function bracketsn -40. function catxfc -41. function catxfi -42. function catxfj -43. function catxfn -44. function deldataset -45. function semicolonc -46. function semicolonn -47. format brackets -48. format semicolon -49. proto qsortincbyprocproto -50. function frommissingtonumberbs -51. function fromnumbertomissing -52. function quicksort4notmiss -53. function quicksorthash -54. function quicksorthashsddv -55. function quicksortlight -56. macro filepath -57. macro letters -58. macro libpath -59. macro translate -60. macro tranwrd -61. macro workpath +1. macro bppipe +2. macro deduplistc +3. macro deduplistp +4. macro deduplists +5. macro deduplistx +6. macro dirsandfiles +7. macro functionexists +8. macro getvars +9. macro intslist +10. macro ldsn +11. macro ldsnm +12. macro lvarnm +13. macro lvarnmlab +14. macro qdeduplistx +15. macro qgetvars +16. macro qzipevalf +17. macro raincloudplot +18. macro repeattxt +19. macro splitdsintoblocks +20. macro splitdsintoparts +21. macro symdelglobal +22. macro unziplibrary +23. macro zipevalf +24. macro ziplibrary +25. format bool +26. format boolz +27. format ceil +28. format floor +29. format int +30. functions arrfill +31. functions arrfillc +32. functions arrmissfill +33. functions arrmissfillc +34. functions arrmisstoleft +35. functions arrmisstoleftc +36. functions arrmisstoright +37. functions arrmisstorightc +38. functions bracketsc +39. functions bracketsn +40. functions catxfc +41. functions catxfi +42. functions catxfj +43. functions catxfn +44. functions deldataset +45. functions semicolonc +46. functions semicolonn +47. format brackets +48. format semicolon +49. proto qsortincbyprocproto +50. functions frommissingtonumberbs +51. functions fromnumbertomissing +52. functions quicksort4notmiss +53. functions quicksorthash +54. functions quicksorthashsddv +55. functions quicksortlight +56. macro filepath +57. macro finddswithvarval +58. macro gettitle +59. macro letters +60. macro libpath +61. macro translate +62. macro tranwrd +63. macro workpath + Package contains additional content, run: %loadPackageAddCnt(BasePlus) to load it or look for the baseplus_AdditionalContent directory in the Packages fileref @@ -339,7 +356,7 @@ localization (only if additional content was deployed during the installation pr * SAS package generated by generatePackage, version 20230520 * The SHA256 hash digest for package BasePlus: -`F*2A4F3953EC56DB914024457F74286D565C23DCF220FF151040BDB704FD8DDB06` +`F*B3CACDA32A5E70940E667DCA859483BD76DB082D19BAF326F28A580226DDD962` --- # Content description ############################################################################################ @@ -4891,6 +4908,210 @@ The basic syntax is the following, the `<...>` means optional parameters: %put %tranwrd(ABCxyzABCABCxyzABC,ABC); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## >>> `%findDSwithVarVal()` macro: <<< ####################### + +The findDSwithVarVal() macro searches for all +datasets (available for a given session) containing +a variable of a given value. + +The value search is case sensitive - but can be altered with `IC=` parameter. +The value search keeps leading blanks - but can be altered with `TB=` parameter. +The value search compares full value - but can be altered with `CTS=` parameter. + +The default variable type is `char`, the `type=` parameter allows +to change it (possible values are `char` and `num`), the parameter is case sensitive. + +Only datasets are searched, views are not included. + +During the process two temporary datasets named: +`WORK._` (single underscore) and `WORK.__` (double underscore) +are generated. The datasets are deleted at the end of the process. + +By default search results are stored in the `WORK.RESULT` dataset. +Name of the dataset can be altered with `result=` parameter. +The dataset with result contains two variables: +`datasetName` - names of datasets, +`firstObservation` - the firs occurrence of the value. + +See examples below for the details. + +The `%findDSwithVarVal()` macro does not execute as a pure macro code. + +### SYNTAX: ################################################################### + +The basic syntax is the following, the `<...>` means optional parameters: +~~~~~~~~~~~~~~~~~~~~~~~sas +%findDSwithVarVal( + variable + ,value + <,type=> + <,ic=> + <,tb=> + <,cts=> + <,lib=> + <,result=> +) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Arguments description**: + +1. `variable` - *Required*, name of variable to be searched. + +2. `value` - *Required*, the value to be searched. + +*. `type` - *Optional*, default value is `char`. + Indicates which type is the searched value. + Possible values are `char` and `num`, + the parameter is case sensitive. + +*. `ic` - *Optional*, "Ignore Cases", default value is `0`. + Indicates should the search ignore cases of the text values. + Possible values are `0` and `1`. + +*. `tb` - *Optional*, "Trim Blanks", default value is `0`. + Indicates should the search trim leading and trailing + blanks of the text values. + Possible values are `0` and `1`. + +*. `cts` - *Optional*, "Compare To Shorter", default value is `0`. + IF set to `1` execute value comparison as `=:` for the text value. + Possible values are `0` and `1`. + See examples. + +*. `lib` - *Optional*, default value is missing. + If not empty narrows the search to a particular library. + +*. `result` - *Optional*, default value is `WORK.RESULT`. + Is the name of the dataset with results. + +--- + +### EXAMPLES AND USECASES: #################################################### + +**EXAMPLE 1.** Search variable `NAME` containing value `John`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + %findDSwithVarVal(name, John) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +**EXAMPLE 2.** Search numeric variable `AGE` containing value `14`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + %findDSwithVarVal(age, 14, type=num) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +**EXAMPLE 3.** Search numeric variable `SCORE` with missing value: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + data TEST; + score=17; output; + score=42; output; + score=. ; output; + run; + + %findDSwithVarVal(score, ., type=num, result=WORK.MissingScore) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +**EXAMPLE 4.** Search library `WORK` for variable `NAME` starting with value `Jo` + ignoring cases and trimming blanks from value: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + data A; + name="Joanna"; + data B; + name="john"; + data C; + name=" Joseph"; + data D; + name=" joe"; + run; + + %findDSwithVarVal(name, Jo, ic=1, tb=1, cts=1, lib=WORK) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +--- + +## >>> `%getTitle()` macro: <<< ####################### + +The getTitle() macro extract text of titles or footnotes +into a delimited list. + +Titles/footnotes numbers can be selected with the `number` argument. +Only the text of a title or footnote is extracted. + +Author of the original code is: Quentin McMullen (`qmcmullen.sas@gmail.com`). + +See examples below for the details. + +The `%getTitle()` macro executes like a pure macro code. + +### SYNTAX: ################################################################### + +The basic syntax is the following, the `<...>` means optional parameters: +~~~~~~~~~~~~~~~~~~~~~~~sas +%getTitle( + < number> + <,type=> + <,dlm=> + <,qt=> +) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Arguments description**: + +1. `number` - *Optional*, default value is empty, + indicates numbers of titles to be extracted. + Space separated list is expected. + If empty or `_ALL_` extract all non-missing. + +*. `type` - *Optional*, default value is `T`. + Indicates which type is the searched. + `T` fro title, `F` for footnote. + +*. `dlm` - *Optional*, "DeLiMiter", default value is `|` (pipe). + Possible values are: `| \ / , . ~ * # @ ! + - _ : ?` + or `s` for space, `c` for comma, `d` for semicolon. + +*. `qt` - *Optional*, "QuoTes", default value is empty. + Use `%str()` for single quote symbol (e.g. `%str(%")`). + If there are multiple symbols, only the first and the + second are selected as a leading and trailing one, + e.g. `qt=""` gives `"title1 text" "title2 text" ... `. + +--- + +### EXAMPLES AND USECASES: #################################################### + +**EXAMPLE 1.** Get titles in different forms: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + title1 j=c "Hi Roger" ; + title2 j=l "Good Morning" ; + title3 "How are you?" ; + title4 ; + title5 "Bye bye!" ; + + %put %GetTitle() ; + + %put %GetTitle(1 3,dlm=c, qt=[]) ; + + %put %GetTitle(2:4,dlm=s, qt='') ; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +**EXAMPLE 2.** Get footnotes in different forms: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + footnote1 "First little footnote"; + footnote2 "Second little footnote"; + footnote3 "Third little footnote"; + + %put %GetTitle(1 2,type=f,dlm=s, qt="") ; + %put %GetTitle(2 3,type=f,dlm=c, qt='') ; + %put %GetTitle(1 3,type=f,dlm=d, qt=[]) ; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +--- + + + --- --- diff --git a/packages/baseplus.zip b/packages/baseplus.zip index f5594482ba142fda1dfc058f982c1e2e2961430a..1f7746364743cd2e2e2adfdded0df2000d62d117 100644 GIT binary patch delta 22613 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