Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b14b9cd3e | ||
|
|
65dc1c510d | ||
|
|
eb43a1be93 |
@@ -53,10 +53,12 @@ libname NEW "%workPath()/new";
|
|||||||
%put %monthShift(2023,1,-5);
|
%put %monthShift(2023,1,-5);
|
||||||
|
|
||||||
%put #%expandDataSetsList(lib=sashelp,datasets=_all_)#;
|
%put #%expandDataSetsList(lib=sashelp,datasets=_all_)#;
|
||||||
|
|
||||||
|
%workLib(ABC)
|
||||||
```
|
```
|
||||||
and more.
|
and more.
|
||||||
|
|
||||||
SHA256 digest for the latest version of `BasePlus`: F*DB0811D8F207641BD45FCE30CB75D03CDF8D06849EBEA268BB575358FAA4E76C
|
SHA256 digest for the latest version of `BasePlus`: F*6394CE27FBCF48D475F682CBCF8CA8B4FDD6D40D2672EF571F4A561BDDF274A6
|
||||||
|
|
||||||
[**Documentation for BasePlus**](./baseplus.md "Documentation for BasePlus")
|
[**Documentation for BasePlus**](./baseplus.md "Documentation for BasePlus")
|
||||||
|
|
||||||
|
|||||||
108
baseplus.md
@@ -9,22 +9,22 @@
|
|||||||
### Version information:
|
### Version information:
|
||||||
|
|
||||||
- Package: BasePlus
|
- Package: BasePlus
|
||||||
- Version: 2.4.1
|
- Version: 3.1.1
|
||||||
- Generated: 2025-09-05T10:12:32
|
- Generated: 2025-11-05T15:10:31
|
||||||
- Author(s): Bartosz Jablonski (yabwon@gmail.com), Quentin McMullen (qmcmullen@gmail.com)
|
- Author(s): Bartosz Jablonski (yabwon@gmail.com), contributors are Quentin McMullen (qmcmullen@gmail.com) and Ryo Nakaya (nakaya.ryou@gmail.com)
|
||||||
- Maintainer(s): Bartosz Jablonski (yabwon@gmail.com)
|
- Maintainer(s): Bartosz Jablonski (yabwon@gmail.com)
|
||||||
- License: MIT
|
- License: MIT
|
||||||
- File SHA256: `F*DB0811D8F207641BD45FCE30CB75D03CDF8D06849EBEA268BB575358FAA4E76C` for this version
|
- File SHA256: `F*6394CE27FBCF48D475F682CBCF8CA8B4FDD6D40D2672EF571F4A561BDDF274A6` for this version
|
||||||
- Content SHA256: `C*27861ABABB412E8229FE25CD5EEA868F49BB3CBD805CCE65F321ADBC522FAC4E` for this version
|
- Content SHA256: `C*3CA28DF8F3E6D6670D7FD44788D347452F24F4BCF18115873E7EBC742FE30CA4` for this version
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# The `BasePlus` package, version: `2.4.1`;
|
# The `BasePlus` package, version: `3.1.1`;
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
# The BasePlus package [ver. 2.4.1] <a name="baseplus-package"></a> ###############################################
|
# The BasePlus package [ver. 3.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.
|
||||||
@@ -47,7 +47,8 @@ Kudos to all who inspired me to generate this package:
|
|||||||
*Quentin McMullen*,
|
*Quentin McMullen*,
|
||||||
*Kurt Bremser*,
|
*Kurt Bremser*,
|
||||||
*Leonid Batkhan*,
|
*Leonid Batkhan*,
|
||||||
*Louise Hadden*.
|
*Louise Hadden*,
|
||||||
|
*Ryo Nakaya*.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -387,6 +388,11 @@ proc print data=b_x;
|
|||||||
run;
|
run;
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
**EXAMPLE 29** Create library ABC assigned to `<WORK>/ABC` directory:
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
||||||
|
%workLib(abc)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -403,7 +409,7 @@ localization (only if additional content was deployed during the installation pr
|
|||||||
|
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
*SAS package generated by SAS Package Framework, version `20250729`*
|
*SAS package generated by SAS Package Framework, version `20251017`*
|
||||||
|
|
||||||
--------------------------------------------------------------------
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -490,10 +496,11 @@ The `BasePlus` package consists of the following content:
|
|||||||
78. [`%translate()` macro ](#translate-macro-78 )
|
78. [`%translate()` macro ](#translate-macro-78 )
|
||||||
79. [`%tranwrd()` macro ](#tranwrd-macro-79 )
|
79. [`%tranwrd()` macro ](#tranwrd-macro-79 )
|
||||||
80. [`%unifyvarscasesize()` macro ](#unifyvarscasesize-macro-80 )
|
80. [`%unifyvarscasesize()` macro ](#unifyvarscasesize-macro-80 )
|
||||||
81. [`%workpath()` macro ](#workpath-macro-81 )
|
81. [`%worklib()` macro ](#worklib-macro-81 )
|
||||||
|
82. [`%workpath()` macro ](#workpath-macro-82 )
|
||||||
|
|
||||||
|
|
||||||
82. [License note](#license)
|
83. [License note](#license)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -6022,6 +6029,11 @@ See examples below for the details.
|
|||||||
|
|
||||||
The `%findDSwithVarVal()` macro does not execute as a pure macro code.
|
The `%findDSwithVarVal()` macro does not execute as a pure macro code.
|
||||||
|
|
||||||
|
**NOTE:**
|
||||||
|
When a library is assigned with different engine than:
|
||||||
|
"BASE","SPDE","V6","V7","V8","V9","CVP"
|
||||||
|
observation number is not returned.
|
||||||
|
|
||||||
### SYNTAX: ###################################################################
|
### SYNTAX: ###################################################################
|
||||||
|
|
||||||
The basic syntax is the following, the `<...>` means optional parameters:
|
The basic syntax is the following, the `<...>` means optional parameters:
|
||||||
@@ -6656,7 +6668,7 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|||||||
|
|
||||||
The letters() macro function allows to print a list of Roman
|
The letters() macro function allows to print a list of Roman
|
||||||
letters starting from `start` up to `end` incremented by `by`.
|
letters starting from `start` up to `end` incremented by `by`.
|
||||||
The letters list can be uppercases or lowercase (parameter `c=U` or `c=L`),
|
The letters list can be uppercase or lowercase (parameter `c=U` or `c=L`),
|
||||||
can be quoted (e.g. `q=""` or `q=[]`), and can be separated by `s=`.
|
can be quoted (e.g. `q=""` or `q=[]`), and can be separated by `s=`.
|
||||||
|
|
||||||
Values of `start`, `end`, and `by` have to be integers in range between 1 ad 26.
|
Values of `start`, `end`, and `by` have to be integers in range between 1 ad 26.
|
||||||
@@ -6684,12 +6696,12 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
|||||||
Values of `start`, `end`, and `by` are separated by
|
Values of `start`, `end`, and `by` are separated by
|
||||||
colon and must be between 1 ad 26.
|
colon and must be between 1 ad 26.
|
||||||
If value is outside range it is set to
|
If value is outside range it is set to
|
||||||
`start=1`, `en=26`, and `by=1`. If `end` is missing
|
`start=1`, `end=26`, and `by=1`. If `end` is missing
|
||||||
then is set to value of `start`.
|
then it is set to value of `start`.
|
||||||
If `end` is smaller than `start` list is reversed
|
If `end` is smaller than `start` list is reversed
|
||||||
|
|
||||||
* `c = U` - *Optional*, it is a lowercase letters indicator.
|
* `c = U` - *Optional*, it is a lowercase letters indicator.
|
||||||
Select `L` or `l`. Default value is `U` for upcase.
|
Select `L` or `l`. Default value is `U` for uppercase.
|
||||||
|
|
||||||
* `q = ` - *Optional*, it is a quite around elements of the list.
|
* `q = ` - *Optional*, it is a quite around elements of the list.
|
||||||
Default value is empty. Use `%str()` for one quote symbol.
|
Default value is empty. Use `%str()` for one quote symbol.
|
||||||
@@ -7619,7 +7631,71 @@ run;
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## `%workpath()` macro <a name="workpath-macro-81"></a> ######
|
## `%worklib()` macro <a name="worklib-macro-81"></a> ######
|
||||||
|
|
||||||
|
## >>> `%workLib()` macro: <<< <a name="worklib-macro"></a> #######################
|
||||||
|
|
||||||
|
The `%workLib()` macro creates and assigns a WORK-scoped sub-library.
|
||||||
|
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
The macro creates (if needed) and assigns a SAS library as a sub-directory
|
||||||
|
under the current `WORK` location. This is useful for isolating temporary
|
||||||
|
outputs per task while ensuring automatic cleanup at the end of the SAS session.
|
||||||
|
Basic engines libraries, like `BASE`, `V*`, and simple `SPDE`, can be set.
|
||||||
|
|
||||||
|
### SYNTAX: ###################################################################
|
||||||
|
|
||||||
|
The basic syntax is the following, the `<...>` means optional parameters:
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~sas
|
||||||
|
%workLib(lib,<engine>)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
**Arguments description**:
|
||||||
|
|
||||||
|
- `lib` - *Required*: Name of a library (and sub-folder)
|
||||||
|
to create under WORK. The value must be a valid
|
||||||
|
nonempty SAS libref (8 characters max, starting
|
||||||
|
with a letter or underscore).
|
||||||
|
|
||||||
|
- `engine` - *Optional*, Name of a basic, directory level,
|
||||||
|
SAS engine, e.g. `BASE`. When empty the default
|
||||||
|
engine is used.
|
||||||
|
---
|
||||||
|
|
||||||
|
### Details
|
||||||
|
|
||||||
|
- Builds a target path: `<WORK>/<lib>`.
|
||||||
|
- All data written to this libref are temporary and will be removed
|
||||||
|
when the WORK library is cleared at session end.
|
||||||
|
- If a directory with the same name already exists under WORK,
|
||||||
|
the macro prints a note and simply assigns the LIBNAME to
|
||||||
|
that location.
|
||||||
|
- The `dcreate()` function is used to create sub-directory.
|
||||||
|
|
||||||
|
|
||||||
|
### EXAMPLES AND USECASES: ####################################################
|
||||||
|
|
||||||
|
**EXAMPLE 1.** Create library ABC assigned to `<WORK>/ABC` directory:
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
||||||
|
%workLib(abc)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
**EXAMPLE 2.** Create libraries with different engines:
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
||||||
|
%workLib(b,BASE)
|
||||||
|
|
||||||
|
%workLib(v,V6) %* for Windows only.;
|
||||||
|
|
||||||
|
%workLib(s,SPDE)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## `%workpath()` macro <a name="workpath-macro-82"></a> ######
|
||||||
|
|
||||||
## >>> `%workPath()` macro: <<< <a name="workpath-macro"></a> #######################
|
## >>> `%workPath()` macro: <<< <a name="workpath-macro"></a> #######################
|
||||||
|
|
||||||
|
|||||||
BIN
baseplus.zip
7757
hist/3.0.0/baseplus.md
Normal file
BIN
hist/3.0.0/baseplus.zip
Normal file
7762
hist/3.1.0/baseplus.md
Normal file
BIN
hist/3.1.0/baseplus.zip
Normal file
7762
hist/3.1.1/baseplus.md
Normal file
BIN
hist/3.1.1/baseplus.zip
Normal file
BIN
hist/3.1.1/baseplus_RainCloudPlot_Ex0.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
hist/3.1.1/baseplus_RainCloudPlot_Ex1x.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
hist/3.1.1/baseplus_RainCloudPlot_Ex1y.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
hist/3.1.1/baseplus_RainCloudPlot_Ex2a.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
hist/3.1.1/baseplus_RainCloudPlot_Ex2b.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
hist/3.1.1/baseplus_RainCloudPlot_Ex3.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
hist/3.1.1/baseplus_RainCloudPlot_Ex4.png
Normal file
|
After Width: | Height: | Size: 54 KiB |