Create a vector of class `deb_lsd`

to integrate non-decimal currencies
into standardized forms of analysis provided by R.

## Arguments

- l
Numeric vector representing the pounds unit.

- s
Numeric vector representing the shillings unit.

- d
Numeric vector representing the pence unit.

- bases
Numeric vector of length 2 used to specify the bases for the solidus or s and denarius or d units. Default is

`c(20, 12)`

, which conforms to the most widely used system of 1 pound = 20 shillings and 1 shilling = 12 pence.

## Details

The `deb_decimal`

class and the `debkeepr`

package use the nomenclature of
l, s, and d to represent the tripartite
system of pounds, shillings, and pence units. The abbreviations derive from
the Latin terms *libra*,
*solidus*, and
*denarius*. In the 8th century a
*solidus* came to represent 12 *denarii* coins, and, for a time at least,
240 *denarii* were made from one *libra* or pound of silver. The custom of
counting coins in dozens (*solidi*) and scores of dozens (*librae*) spread
throughout the Carolingian Empire and became ingrained in much of Europe.
However, a variety of accounting systems arose at different times that used
other bases for the
*solidus* and *denarius* units. The `bases`

attribute of `deb_decimal`

vectors makes it possible to specify alternative bases for the *solidus* and
*denarius* units.

The length of `l`

, `s`

, and `d`

must either be all equal, or a vector of
length 1 can be recycled to the length of the other argument(s). See
the vctrs package
for further details on recycling vectors. In addition, `l`

, `s`

, and `d`

must either all have no values, resulting in a vector of length 0, or all
possess numeric vectors.

## See also

The `deb_lsd`

class works in concert with the `deb_decimal`

class, which
represents non-decimal currencies as decimalized values. See
`deb_decimal()`

. To represent values with tetrapartite units see
`deb_tetra()`

.

## Examples

```
deb_lsd(5, 3, 8)
#> <deb_lsd[1]>
#> [1] 5:3s:8d
#> # Bases: 20s 12d
deb_lsd(l = c(10, 8, 5),
s = c(6, 13, 8),
d = c(8, 4, 10))
#> <deb_lsd[3]>
#> [1] 10:6s:8d 8:13s:4d 5:8s:10d
#> # Bases: 20s 12d
# Recycle length 1 vector
deb_lsd(l = c(10, 8, 5),
s = c(6, 13, 8),
d = 0)
#> <deb_lsd[3]>
#> [1] 10:6s:0d 8:13s:0d 5:8s:0d
#> # Bases: 20s 12d
# Set the bases of the deb_lsd vector
deb_lsd(5, 3, 8, bases = c(60, 16))
#> <deb_lsd[1]>
#> [1] 5:3s:8d
#> # Bases: 60s 16d
deb_lsd(l = c(10, 28, 5),
s = c(6, 33, 13),
d = c(8, 42, 10),
bases = c(60, 16))
#> <deb_lsd[3]>
#> [1] 10:6s:8d 28:33s:42d 5:13s:10d
#> # Bases: 60s 16d
# Create a prototype or vector of length 0
deb_lsd()
#> <deb_lsd[0]>
#> # Bases: 20s 12d
```