Pounds, shillings, and pence values are stored as a list of numeric vectors of length 3 that possesses a bases attribute to record the non-decimal bases for the shillings and pence units of the values. The first position of each vector represents the pounds value or l. The second position represents the shillings value or s. And the third position represents the pence value or d. The bases attribute is stored as a numeric vector of length 2 with the first value recording the shillings base and the second value the base of the pence units. lsd objects can be used as list columns in a data frame.

deb_lsd(l, s, d, bases = c(20, 12))

deb_as_lsd(lsd, bases = c(20, 12), ...)

# S3 method for default
deb_as_lsd(lsd, bases = c(20, 12), ...)

# S3 method for numeric
deb_as_lsd(lsd, bases = c(20, 12), ...)

# S3 method for list
deb_as_lsd(lsd, bases = c(20, 12), ...)

# S3 method for lsd
deb_as_lsd(lsd, ...)

# S3 method for lsd
print(x, ...)

## Arguments

l Numeric vector representing the pounds unit. Numeric vector representing the shillings unit. Numeric vector representing the pence unit. Numeric vector of length 2 used to specify the bases for the shillings or s and pence 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. Numeric vector of length 3 or list of numeric vectors of length 3. The first position of the vector represents the pounds value or l. The second position represents the shillings value or s. And the third position represents the pence value or d. Arguments passed on to further methods. An object.

## Value

Returns an object of class lsd with a bases attribute.

## Details

The lsd class and the debkeepr package use the nomenclature of l, s, and d to represent 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 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 engrained in much of Europe. However, other bases for the solidus and denarius units were also in use. The bases attribute makes it possible to specify alternative bases for the solidus and denarius units.

## Examples

## Create lsd objects from separate l, s, and d vectors ##

# lsd object for £10 6s. 8d.
deb_lsd(l = 10, s = 6, d = 8, bases = c(20, 12))#>      l s d
#> [1] 10 6 8
# lsd object for the Dutch system of guilders, stuivers, and penningen
deb_lsd(l = 10, s = 6, d = 8, bases = c(20, 16))#>      l s d
#> [1] 10 6 8
# lsd object from vectors of length > 1: all must be the same length
deb_lsd(l = c(10, 8, 5),
s = c(6, 13, 8),
d = c(8, 4, 10),
bases = c(20, 12))#>      l  s  d
#> [1] 10  6  8
#> [2]  8 13  4
#> [3]  5  8 10
## Create lsd objects from numeric vectors of length 3 ##

# lsd object for £10 6s. 8d.
deb_as_lsd(lsd = c(10, 6, 8), bases = c(20, 12))#>      l s d
#> [1] 10 6 8
# lsd object for the Dutch system of guilders, stuivers, and penningen
deb_as_lsd(lsd = c(10, 8, 14), bases = c(20, 16))#>      l s  d
#> [1] 10 8 14
# lsd object from a list of vectors
deb_as_lsd(lsd = list(c(10, 6, 8),
c(8, 13, 4),
c(5, 8, 10)))#>      l  s  d
#> [1] 10  6  8
#> [2]  8 13  4
#> [3]  5  8 10