diff --git a/README.md b/README.md index 9b95d48..e7a25ab 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ SHA256 digest for macroArray: 849629D3AF3FE3AB45D86990E303F1D5E4D5F9F31C8ED6864C [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/macroarray.md "Documentation for macroArray") -- **BasePlus**\[0.991\] adds a bunch of functionalities I am missing in BASE SAS, such as: +- **BasePlus**\[0.992\] adds a bunch of functionalities I am missing in BASE SAS, such as: ```sas call arrMissToRight(myArray); call arrFillMiss(17, myArray); @@ -158,7 +158,7 @@ format x bool.; %put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_); ``` -SHA256 digest for BasePlus: A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A330277E67637A +SHA256 digest for BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F [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 76e42cf..8196de5 100644 --- a/packages/README.md +++ b/packages/README.md @@ -90,7 +90,7 @@ SHA256 digest for macroArray: 849629D3AF3FE3AB45D86990E303F1D5E4D5F9F31C8ED6864C --- -- **BasePlus**\[0.991\] adds a bunch of functionalities I am missing in BASE SAS, such as: +- **BasePlus**\[0.992\] adds a bunch of functionalities I am missing in BASE SAS, such as: ```sas call arrMissToRight(myArray); call arrFillMiss(17, myArray); @@ -104,7 +104,7 @@ format x bool.; %put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_); ``` -SHA256 digest for BasePlus: A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A330277E67637A +SHA256 digest for BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F [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 df9eefb..0ca9136 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,8 +1,11 @@ +/* 20210818 */ +BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F + /* 20210726 */ -2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144 +GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144 /* 20210722 */ -311BCF510B7B189AE9A75C56C4D2F99F844114CC5AD32329FAD690BA1F10422A +GSM: 311BCF510B7B189AE9A75C56C4D2F99F844114CC5AD32329FAD690BA1F10422A /* 20210719 */ GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 diff --git a/packages/baseplus.md b/packages/baseplus.md index 5c758c6..c1ec220 100644 --- a/packages/baseplus.md +++ b/packages/baseplus.md @@ -41,12 +41,13 @@ * [`semicolonN()` function](#semicolonn-function) * [`%zipEvalf()` macro](#zipevalf-macro) * [`%QzipEvalf()` macro](#qzipevalf-macro) + * [`%functionExists()` macro](#functionexists-macro) * [License](#license) --- -# The BasePlus package [ver. 0.991] ############################################### +# The BasePlus package [ver. 0.992] ############################################### The **BasePlus** package implements useful functions and functionalities I miss in the BASE SAS. @@ -61,7 +62,8 @@ Kudos to all who inspired me to generate this package: *Mark Keintz*, *Paul Dorfman*, *Richard DeVenezia*, -*Christian Graffeuille*. +*Christian Graffeuille*, +*Allan Bowe*. --- @@ -179,52 +181,54 @@ Kudos to all who inspired me to generate this package: --- Package contains: -1. macro deduplistc -2. macro deduplistp -3. macro deduplists -4. macro deduplistx -5. macro getvars -6. macro qdeduplistx -7. macro qgetvars -8. macro qzipevalf -9. macro symdelglobal -10. macro zipevalf -11. format bool -12. format boolz -13. format ceil -14. format floor -15. format int -16. functions arrfill -17. functions arrfillc -18. functions arrmissfill -19. functions arrmissfillc -20. functions arrmisstoleft -21. functions arrmisstoleftc -22. functions arrmisstoright -23. functions arrmisstorightc -24. functions bracketsc -25. functions bracketsn -26. functions catxfc -27. functions catxfi -28. functions catxfj -29. functions catxfn -30. functions deldataset -31. functions semicolonc -32. functions semicolonn -33. format brackets -34. format semicolon -35. proto qsortincbyprocproto -36. functions frommissingtonumberbs -37. functions fromnumbertomissing -38. functions quicksort4notmiss -39. functions quicksorthash -40. functions quicksorthashsddv -41. functions quicksortlight +1. macro deduplistc +2. macro deduplistp +3. macro deduplists +4. macro deduplistx +5. macro functionexists +6. macro getvars +7. macro qdeduplistx +8. macro qgetvars +9. macro qzipevalf +10. macro symdelglobal +11. macro zipevalf +12. format bool +13. format boolz +14. format ceil +15. format floor +16. format int +17. functions arrfill +18. functions arrfillc +19. functions arrmissfill +20. functions arrmissfillc +21. functions arrmisstoleft +22. functions arrmisstoleftc +23. functions arrmisstoright +24. functions arrmisstorightc +25. functions bracketsc +26. functions bracketsn +27. functions catxfc +28. functions catxfi +29. functions catxfj +30. functions catxfn +31. functions deldataset +32. functions semicolonc +33. functions semicolonn +34. format brackets +35. format semicolon +36. proto qsortincbyprocproto +37. functions frommissingtonumberbs +38. functions fromnumbertomissing +39. functions quicksort4notmiss +40. functions quicksorthash +41. functions quicksorthashsddv +42. functions quicksortlight + *SAS package generated by generatePackage, version 20210109* The SHA256 hash digest for package BasePlus: -`A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A330277E67637A` +`C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F` --- # Content description ############################################################################################ @@ -2929,7 +2933,42 @@ run; --- +## >>> `%functionExists()` macro: <<< ####################### +The functionExists() macro function tests +if given funcion exists in the SAS session. +The `sashelp.vfunc` view is used. + +See examples below for the details. + +The `%functionExists()` macro executes like a pure macro code. + +The function is a result of cooperation with [Allan Bowe](https://www.linkedin.com/in/allanbowe/) + +### SYNTAX: ################################################################### + +The basic syntax is the following, the `<...>` means optional parameters: +~~~~~~~~~~~~~~~~~~~~~~~sas +%functionExists( + funName +) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Arguments description**: + +1. `funName` - *Required*, the name of the function + existence of which you are testing. + +### EXAMPLES AND USECASES: #################################################### + +**EXAMPLE 1.** Test if function exists: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + %put %functionExists(HASHING); + + %put %functionExists(COSsinLOG); +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +--- ## License #################################################################### diff --git a/packages/baseplus.zip b/packages/baseplus.zip index 159c594..cf927c8 100644 Binary files a/packages/baseplus.zip and b/packages/baseplus.zip differ