mirror of
https://github.com/yabwon/SAS_PACKAGES.git
synced 2026-01-03 13:20:05 +00:00
Package BasePlus, version 1.0
Package BasePlus, version 1.0: -New macro `%zipLibrary()` added. -The doc. updated.
This commit is contained in:
@@ -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")
|
||||||
|
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
/* 20211113 */
|
||||||
|
BasePlus: 4EDB786B9D6F6D6C5741B5CAC1CB169DD10D8196600B2CB385DDE479A54F0FA3
|
||||||
|
|
||||||
/* 20211112 */
|
/* 20211112 */
|
||||||
GSM: F6EE77A3C042E1E083E970BE255D126B52A75205DC1FB9A4A7337D0A89EEC7EB
|
GSM: F6EE77A3C042E1E083E970BE255D126B52A75205DC1FB9A4A7337D0A89EEC7EB
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
**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:
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## >>> `%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.
Reference in New Issue
Block a user