Merge pull request #21 from yabwon/main

pull request
This commit is contained in:
Bart Jablonski
2021-08-18 23:02:20 +02:00
committed by GitHub
7 changed files with 103 additions and 55 deletions

View File

@@ -21,7 +21,7 @@ Short description of the SAS Packages Framework macros can be found [here](https
- [SAS Global Forum 2020 V.E.](https://www.youtube.com/watch?v=qCkb-bx0Dv8&t=0s "SGF2020") (April 2020)
- [Sasensei International Dojo](https://www.youtube.com/watch?v=BFhdUBQgjYQ&t=0s "SID no. 1") (April 2020)
- [SAS dla Administratorów i Praktyków 2020](https://www.youtube.com/watch?v=mXuep2k48Z8&feature=youtu.be&t=0s "SASAiP2020") (October 2020, in Polish)
- [Boston Area SAS Users Group webinar](https://us02web.zoom.us/rec/share/p6ZpCsvc5YZDQGpLOOLOB4zyNGA4vjfjJcNhwaGQ7jKKR00Z_bmeCcBkcwkut6Pr.Q6UoueYAOcv6dPQf "BASUG") (November 2020)
- [Boston Area SAS Users Group webinar](https://www.basug.org/videos?wix-vod-video-id=78067e61413d43d3a6951974b3bc3014&wix-vod-comp-id=comp-klv807gt "BASUG") (November 2020)
- [SAS Global Forum 2021 V.E.](https://www.youtube.com/watch?v=hqexaQtGw88 "SGF2021") (May 20th, 2021)
---
@@ -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,16 +158,16 @@ 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")
- **GSM** (Generate Secure Macros)\[0.11\], package allows
- **GSM** (Generate Secure Macros)\[0.13\], package allows
to create secured macros stored in SAS Proc FCMP functions.
The dataset with functions can be shared between different operating systems
and allows to generate macros on site without showing their code.
SHA256 digest for GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8
SHA256 digest for GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144
[Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM")

View File

@@ -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,18 +104,18 @@ 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")
---
- **GSM** (Generate Secure Macros)\[0.11\], package allows
- **GSM** (Generate Secure Macros)\[0.13\], package allows
to create secured macros stored in SAS Proc FCMP functions.
The dataset with functions can be shared between different operating systems
and allows to generate macros on site without showing their code.
SHA256 digest for GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8
SHA256 digest for GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144
[Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM")

View File

@@ -1,3 +1,12 @@
/* 20210818 */
BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F
/* 20210726 */
GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144
/* 20210722 */
GSM: 311BCF510B7B189AE9A75C56C4D2F99F844114CC5AD32329FAD690BA1F10422A
/* 20210719 */
GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8

View File

@@ -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] <a name="baseplus-package"></a> ###############################################
# The BasePlus package [ver. 0.992] <a name="baseplus-package"></a> ###############################################
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: <<< <a name="functionexists-macro"></a> #######################
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 ####################################################################

Binary file not shown.

View File

@@ -8,7 +8,7 @@
---
# The GSM package [ver. 0.11] <a name="gsm-package"></a> ###############################################
# The GSM package [ver. 0.13] <a name="gsm-package"></a> ###############################################
The **GSM** (a.k.a. *Generate Secure Macros*) package allows
to create secured macros stored in SAS Proc FCMP functions.
@@ -68,7 +68,7 @@ Required SAS Components:
* SAS package generated by generatePackage, version 20210528 *
The SHA256 hash digest for package BasePlus:
`4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8`
`2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144`
## >>> `%GSM()` macro: <<< <a name="gsm-macro"></a> #######################

Binary file not shown.