Package BasePlus, version 1.0

Package BasePlus, version 1.0:

-New macro `%zipLibrary()` added.
-The doc. updated.
This commit is contained in:
yabwon
2021-11-13 22:51:01 +01:00
parent fe631f9e44
commit 942879a5b8
5 changed files with 161 additions and 40 deletions

View File

@@ -146,7 +146,7 @@ SHA256 digest for macroArray: 9FE227EF3144431B51063D599148BDD8873509D1B32F1AC297
[Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/macroarray.md "Documentation for macroArray") [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/macroarray.md "Documentation for macroArray")
- **BasePlus**\[0.994\] adds a bunch of functionalities I am missing in BASE SAS, such as: - **BasePlus**\[1.0\] adds a bunch of functionalities I am missing in BASE SAS, such as:
```sas ```sas
call arrMissToRight(myArray); call arrMissToRight(myArray);
call arrFillMiss(17, myArray); call arrFillMiss(17, myArray);
@@ -159,8 +159,12 @@ string = catXFn("date9.", "#", myArray);
format x bool.; format x bool.;
%put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_); %put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_);
%rainCloudPlot(sashelp.cars,DriveTrain,Invoice)
%zipLibrary(sashelp,libOut=work)
``` ```
SHA256 digest for BasePlus: B34E352EC52E05B8BBE1816E6104F47677CBFDEAF7CD71B8BF04FDBFA01B0EF0 SHA256 digest for BasePlus: 4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3
[Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus")

View File

@@ -90,7 +90,7 @@ SHA256 digest for macroArray: 70032D27081A0EE15BC82B8F14D2A61700FA7C1F0D88B4DB51
--- ---
- **BasePlus**\[0.994\] adds a bunch of functionalities I am missing in BASE SAS, such as: - **BasePlus**\[1.0\] adds a bunch of functionalities I am missing in BASE SAS, such as:
```sas ```sas
call arrMissToRight(myArray); call arrMissToRight(myArray);
call arrFillMiss(17, myArray); call arrFillMiss(17, myArray);
@@ -103,8 +103,12 @@ string = catXFn("date9.", "#", myArray);
format x bool.; format x bool.;
%put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_); %put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_);
%rainCloudPlot(sashelp.cars,DriveTrain,Invoice)
%zipLibrary(sashelp,libOut=work)
``` ```
SHA256 digest for BasePlus: B34E352EC52E05B8BBE1816E6104F47677CBFDEAF7CD71B8BF04FDBFA01B0EF0 SHA256 digest for BasePlus: 4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3
[Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus")

View File

@@ -1,3 +1,6 @@
/* 20211113 */
BasePlus: 4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3
/* 20211112 */ /* 20211112 */
GSM: F6EE77A3C042E1E083E970BE255D126B52A75205DC1FB9A4A7337D0A89EEC7EB GSM: F6EE77A3C042E1E083E970BE255D126B52A75205DC1FB9A4A7337D0A89EEC7EB

View File

@@ -43,13 +43,14 @@
* [`%QzipEvalf()` macro](#qzipevalf-macro) * [`%QzipEvalf()` macro](#qzipevalf-macro)
* [`%functionExists()` macro](#functionexists-macro) * [`%functionExists()` macro](#functionexists-macro)
* [`%RainCloudPlot()` macro](#raincloudplot-macro) * [`%RainCloudPlot()` macro](#raincloudplot-macro)
* [`%zipLibrary()` macro](#ziplibrary-macro)
* [License](#license) * [License](#license)
--- ---
# The BasePlus package [ver. 0.994] <a name="baseplus-package"></a> ############################################### # The BasePlus package [ver. 1.0] <a name="baseplus-package"></a> ###############################################
The **BasePlus** package implements useful The **BasePlus** package implements useful
functions and functionalities I miss in the BASE SAS. functions and functionalities I miss in the BASE SAS.
@@ -65,7 +66,8 @@ Kudos to all who inspired me to generate this package:
*Paul Dorfman*, *Paul Dorfman*,
*Richard DeVenezia*, *Richard DeVenezia*,
*Christian Graffeuille*, *Christian Graffeuille*,
*Allan Bowe*. *Allan Bowe*,
*Anamaria Calai*.
--- ---
@@ -168,7 +170,7 @@ Kudos to all who inspired me to generate this package:
run; run;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**Example 7**: Deduplicate values from a space separated list. **Example 7**: De-duplicate values from a space separated list.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%let list = 4 5 6 1 2 3 1 2 3 4 5 6; %let list = 4 5 6 1 2 3 1 2 3 4 5 6;
%put *%dedupListS(&list.)*; %put *%dedupListS(&list.)*;
@@ -187,6 +189,13 @@ Kudos to all who inspired me to generate this package:
![Rain Cloud Plot](./baseplus_RainCloudPlot_Ex0_9.png) ![Rain Cloud Plot](./baseplus_RainCloudPlot_Ex0_9.png)
**Example 10**: Zip SAS library.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(sashelp,libOut=work)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- ---
@@ -203,43 +212,45 @@ Package contains:
10. macro raincloudplot 10. macro raincloudplot
11. macro symdelglobal 11. macro symdelglobal
12. macro zipevalf 12. macro zipevalf
13. format bool 13. macro ziplibrary
14. format boolz 14. format bool
15. format ceil 15. format boolz
16. format floor 16. format ceil
17. format int 17. format floor
18. functions arrfill 18. format int
19. functions arrfillc 19. functions arrfill
20. functions arrmissfill 20. functions arrfillc
21. functions arrmissfillc 21. functions arrmissfill
22. functions arrmisstoleft 22. functions arrmissfillc
23. functions arrmisstoleftc 23. functions arrmisstoleft
24. functions arrmisstoright 24. functions arrmisstoleftc
25. functions arrmisstorightc 25. functions arrmisstoright
26. functions bracketsc 26. functions arrmisstorightc
27. functions bracketsn 27. functions bracketsc
28. functions catxfc 28. functions bracketsn
29. functions catxfi 29. functions catxfc
30. functions catxfj 30. functions catxfi
31. functions catxfn 31. functions catxfj
32. functions deldataset 32. functions catxfn
33. functions semicolonc 33. functions deldataset
34. functions semicolonn 34. functions semicolonc
35. format brackets 35. functions semicolonn
36. format semicolon 36. format brackets
37. proto qsortincbyprocproto 37. format semicolon
38. functions frommissingtonumberbs 38. proto qsortincbyprocproto
39. functions fromnumbertomissing 39. functions frommissingtonumberbs
40. functions quicksort4notmiss 40. functions fromnumbertomissing
41. functions quicksorthash 41. functions quicksort4notmiss
42. functions quicksorthashsddv 42. functions quicksorthash
43. functions quicksortlight 43. functions quicksorthashsddv
44. functions quicksortlight
*SAS package generated by generatePackage, version 20211111* *SAS package generated by generatePackage, version 20211111*
The SHA256 hash digest for package BasePlus: The SHA256 hash digest for package BasePlus:
`B34E352EC52E05B8BBE1816E6104F47677CBFDEAF7CD71B8BF04FDBFA01B0EF0` `4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3`
--- ---
# Content description ############################################################################################ # Content description ############################################################################################
@@ -3254,6 +3265,105 @@ The output:
![Example 2b](./baseplus_RainCloudPlot_Ex2b.png) ![Example 2b](./baseplus_RainCloudPlot_Ex2b.png)
---
## >>> `%zipLibrary()` macro: <<< <a name="ziplibrary-macro"></a> #######################
The zipLibrary() macro allows to zip content of a SAS library.
Files can be zipped into a single file (named as the input library)
or into multiple files (named as "dataset.sas7bdat.zip").
If a file is indexed also the index file is zipped.
Source files can be deleted after compression.
Status of compression and processing time is reported.
See examples below for the details.
### SYNTAX: ###################################################################
The basic syntax is the following, the `<...>` means optional parameters:
~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(
lib
<,mode=>
<,clean=>
<,libOut=>
)
~~~~~~~~~~~~~~~~~~~~~~~
**Arguments description**:
1. `lib` - *Required*, a name of the library to be zipped.
Must be a valid SAS V7, V8, or V9 library.
* `mode = S` - *Optional*, default value is `S`,
indicates mode of compression
generates single zip file (`SINGLE/S`)
or multiple files (`MULTI/M`)
* `clean = 0` - *Optional*, default value is 0,
should datasets be deleted after zipping?
`1` means *yes*, `0` means *no*.
* `libOut =` - *Optional*, default value is empty,
output library for a single zip file.
### EXAMPLES AND USECASES: ####################################################
**EXAMPLE 1.** Generate data:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
options dlcreatedir;
libname test1 "%sysfunc(pathname(work))/test1";
libname test2 "%sysfunc(pathname(work))/test2";
libname test3 (test1 test2);
libname test4 "%sysfunc(pathname(work))/test4";
options nodlcreatedir;
%put %sysfunc(pathname(test3));
%put %sysfunc(pathname(test4));
data
test1.A(index=(model))
test1.B
test2.C
test2.D(index=(model make io=(invoice origin)))
;
set sashelp.cars;
run;
data test1.B2 / view=test1.B2;
set test1.B;
output;
output;
run;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**EXAMPLE 2.** Zip content of test3 library
into the same location in one zip file:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(test3)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**EXAMPLE 3.** Zip content of test3 library
into the same location in multiple zip files:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(test3, mode=MULTI)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**EXAMPLE 4.** Zip content of test3 library
into different location in one zip file
and delete source files:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(test3, clean=1, libOut=test4)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- ---
## License #################################################################### ## License ####################################################################

Binary file not shown.