Package BasePlus, version 1.1

Package BasePlus, version 1.1:

-New macro `%unzipLibrary()` added.
-Macro `%zipLibrary()` updated.
-The doc. updated.
This commit is contained in:
yabwon
2021-11-14 16:12:04 +01:00
parent 942879a5b8
commit b76b1ed9eb
5 changed files with 176 additions and 43 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**\[1.0\] adds a bunch of functionalities I am missing in BASE SAS, such as: - **BasePlus**\[1.1\] 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);
@@ -164,7 +164,7 @@ format x bool.;
%zipLibrary(sashelp,libOut=work) %zipLibrary(sashelp,libOut=work)
``` ```
SHA256 digest for BasePlus: 4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3 SHA256 digest for BasePlus: 319109732B5CBD99ADDA6D48EA26DA5236622F9C5D332F94EF282F1C9DCE73F9
[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**\[1.0\] adds a bunch of functionalities I am missing in BASE SAS, such as: - **BasePlus**\[1.1\] 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);
@@ -108,7 +108,7 @@ format x bool.;
%zipLibrary(sashelp,libOut=work) %zipLibrary(sashelp,libOut=work)
``` ```
SHA256 digest for BasePlus: 4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3 SHA256 digest for BasePlus: 319109732B5CBD99ADDA6D48EA26DA5236622F9C5D332F94EF282F1C9DCE73F9
[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 @@
/* 20211114 */
BasePlus: 319109732B5CBD99ADDA6D48EA26DA5236622F9C5D332F94EF282F1C9DCE73F9
/* 20211113 */ /* 20211113 */
BasePlus: 4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3 BasePlus: 4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3

View File

@@ -44,13 +44,13 @@
* [`%functionExists()` macro](#functionexists-macro) * [`%functionExists()` macro](#functionexists-macro)
* [`%RainCloudPlot()` macro](#raincloudplot-macro) * [`%RainCloudPlot()` macro](#raincloudplot-macro)
* [`%zipLibrary()` macro](#ziplibrary-macro) * [`%zipLibrary()` macro](#ziplibrary-macro)
* [`%unzipLibrary()` macro](#unziplibrary-macro)
* [License](#license) * [License](#license)
--- ---
# The BasePlus package [ver. 1.0] <a name="baseplus-package"></a> ############################################### # The BasePlus package [ver. 1.1] <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.
@@ -191,7 +191,9 @@ Kudos to all who inspired me to generate this package:
**Example 10**: Zip SAS library. **Example 10**: Zip SAS library.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(sashelp,libOut=work) %zipLibrary(sashelp, libOut=work)
%unzipLibrary(%sysfunc(pathname(work)), zip=sashelp, mode=S, clean=1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -211,46 +213,46 @@ Package contains:
9. macro qzipevalf 9. macro qzipevalf
10. macro raincloudplot 10. macro raincloudplot
11. macro symdelglobal 11. macro symdelglobal
12. macro zipevalf 12. macro unziplibrary
13. macro ziplibrary 13. macro zipevalf
14. format bool 14. macro ziplibrary
15. format boolz 15. format bool
16. format ceil 16. format boolz
17. format floor 17. format ceil
18. format int 18. format floor
19. functions arrfill 19. format int
20. functions arrfillc 20. functions arrfill
21. functions arrmissfill 21. functions arrfillc
22. functions arrmissfillc 22. functions arrmissfill
23. functions arrmisstoleft 23. functions arrmissfillc
24. functions arrmisstoleftc 24. functions arrmisstoleft
25. functions arrmisstoright 25. functions arrmisstoleftc
26. functions arrmisstorightc 26. functions arrmisstoright
27. functions bracketsc 27. functions arrmisstorightc
28. functions bracketsn 28. functions bracketsc
29. functions catxfc 29. functions bracketsn
30. functions catxfi 30. functions catxfc
31. functions catxfj 31. functions catxfi
32. functions catxfn 32. functions catxfj
33. functions deldataset 33. functions catxfn
34. functions semicolonc 34. functions deldataset
35. functions semicolonn 35. functions semicolonc
36. format brackets 36. functions semicolonn
37. format semicolon 37. format brackets
38. proto qsortincbyprocproto 38. format semicolon
39. functions frommissingtonumberbs 39. proto qsortincbyprocproto
40. functions fromnumbertomissing 40. functions frommissingtonumberbs
41. functions quicksort4notmiss 41. functions fromnumbertomissing
42. functions quicksorthash 42. functions quicksort4notmiss
43. functions quicksorthashsddv 43. functions quicksorthash
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:
`4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3` `319109732B5CBD99ADDA6D48EA26DA5236622F9C5D332F94EF282F1C9DCE73F9`
--- ---
# Content description ############################################################################################ # Content description ############################################################################################
@@ -3290,6 +3292,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
<,mode=> <,mode=>
<,clean=> <,clean=>
<,libOut=> <,libOut=>
<,compression=>
) )
~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
@@ -3304,13 +3307,18 @@ The basic syntax is the following, the `<...>` means optional parameters:
generates single zip file (`SINGLE/S`) generates single zip file (`SINGLE/S`)
or multiple files (`MULTI/M`) or multiple files (`MULTI/M`)
* `clean = 0` - *Optional*, default value is 0, * `clean = 0` - *Optional*, default value is `0`,
should datasets be deleted after zipping? should datasets be deleted after zipping?
`1` means *yes*, `0` means *no*. `1` means *yes*, `0` means *no*.
* `libOut =` - *Optional*, default value is empty, * `libOut =` - *Optional*, default value is empty,
output library for a single zip file. output library for a single zip file.
* `compression =` - *Optional*, default value is `6`,
specifies the compression level
`0` to `9`, where `0` is no compression
and `9` is maximum compression.
### EXAMPLES AND USECASES: #################################################### ### EXAMPLES AND USECASES: ####################################################
**EXAMPLE 1.** Generate data: **EXAMPLE 1.** Generate data:
@@ -3357,11 +3365,133 @@ run;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**EXAMPLE 4.** Zip content of test3 library **EXAMPLE 4.** Zip content of test3 library
with maximum compression level
into different location in one zip file into different location in one zip file
and delete source files: and delete source files:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(test3, clean=1, libOut=test4, compression=9)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---
## >>> `%unzipLibrary()` macro: <<< <a name="unziplibrary-macro"></a> #######################
The unzipLibrary() macro allows to unzip content of a SAS library.
It is a *counterpart* to the `%zipLibrary()` macro and is *not* intended to work
with zip files generated by other software (though it may in some cases).
Files can be unzipped from a single file
or from multiple files (named e.g. "dataset.sas7bdat.zip").
If a file is indexed also the index file is unzipped.
Source files can be deleted after decompression.
Status of decompression and processing time is reported.
See examples below for the details.
### SYNTAX: ###################################################################
The basic syntax is the following, the `<...>` means optional parameters:
~~~~~~~~~~~~~~~~~~~~~~~sas
%unzipLibrary(
path
<,zip=>
<,mode=>
<,clean=>
<,libOut=>
)
~~~~~~~~~~~~~~~~~~~~~~~
**Arguments description**:
1. `path` - *Required*, a path pointing to zipped file(s) location.
* `zip =` - *Optional*, When `mode=S` a name of the
zip file containing SAS files to be unzipped.
* `mode = S` - *Optional*, default value is `S`,
indicates mode of decompression
read from a single zip file (`SINGLE/S`)
or from multiple files (`MULTI/M`)
* `clean = 0` - *Optional*, default value is `0`,
should zip files be deleted after unzipping?
`1` means *yes*, `0` means *no*.
* `libOut =` - *Optional*, default value is empty,
output library for a single zip file
decompression.
### 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.** Use data from Example 1.
First zip content of the `test3` library
to `test4` location into one zip file
and delete source files.
Next unzip `test3.zip` library into the
`test4` location and delete the zip file.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(test3, clean=1, libOut=test4) %zipLibrary(test3, clean=1, libOut=test4)
%unzipLibrary(%sysfunc(pathname(test4)), zip=test3, clean=1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**EXAMPLE 3.** Use data from Example 1.
First zip content of the `test1` library
into multiple zip files and delete source files.
Next unzip `*.zip` files in `test1`
location and delete zipped files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(test1, mode=M, clean=1)
%unzipLibrary(%sysfunc(pathname(test1)), mode=M, clean=1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**EXAMPLE 4.** First zip content of the `sashelp` library
into `work` library.
Next unzip `sashelp.zip` file in `work`
location and delete zip file.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%zipLibrary(sashelp, mode=S, clean=0, libOut=work)
%unzipLibrary(%sysfunc(pathname(work)), zip=sashelp, mode=S, clean=1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- ---

Binary file not shown.