Skip to contents

[Stable]

Formaterer tall med tilhørende enhet automatisk bøyd til entalls-/flertallsform.

Usage

boy_enhet(x, entall, flertall, formatering = erstatt_0, ...)

Arguments

x

Numerisk vektor med minst ett element. Kan ikke inneholde NA-verdier.

entall

Tekst som skal brukes som enhet for x-elementer lik 1 eller -1.

flertall

Tekst som skal brukes som enhet for x-elementer ulik 1 og -1.

formatering

Funksjon for formatering av verdiene i x. Tar inn x og må gi ut en vektor av samme lengde, enten en tekstvektor eller en vektor som kan gjøres om til tekst via as.character().

...

Ytterligere argumenter sendt til formatering().

Value

Tekstvektor av samme lengde som x. Hver tallverdi i x blir formatert som tallverdien + mellomrom + enhet.

Details

Formaterer en tallvektor, x, med tilhørende enhet bøyd til enten entalls- eller flertallsform. For eksempel kan tallet 1 bli formatert som «1 pasient», mens tallet 34 blir formatert som «34 pasienter».

Alle x-elementer lik 1 eller -1 blir formatert med enheten entall, mens resterende elementer blir formatert med enheten flertall.

Formateringsfunksjonen formatering kan for eksempel brukes til å formatere tallene i x med tusenskilletegn eller avrundet til heltal. Standard formateringsfunksjon erstatt_0() gjør i utgangspunktet ingen formatering, men tar argumentet nullverdi, som kan brukes til å erstatte tallet 0 med en selvvalgt verdi, for eksempel teksten «ingen» (se eksempel nedenfor).

Note

Funksjonen håndterer også desimaltall, med samme regler, også for tall der desimaldelen slutter på 1. Det blir for eksempel «2,1 millioner», ikke «2,1 million», selv om begge skrivemåtene er tillatt på norsk.

Examples

# Formatering av enkeltverdier
boy_enhet(1, "operasjon", "operasjoner")
#> [1] "1 operasjon"
boy_enhet(34, "operasjon", "operasjoner")
#> [1] "34 operasjoner"

# Formatering av vektorverdier, og med ikke-standard nullverdi
boy_enhet(c(0, 1, 2),
  entall = "ny pasient",
  flertall = "nye pasienter",
  nullverdi = "ingen"
)
#> [1] "ingen nye pasienter" "1 ny pasient"        "2 nye pasienter"    

# Formatering til LaTeX-tekst og med ett desimaltall
boy_enhet(c(2.67, 1, 0, pi),
  entall = "million",
  flertall = "millioner",
  formatering = num,
  desimalar = 1
)
#> Error in formatering(x, ...): `...` must be empty.
#> ✖ Problematic argument:
#> • desimalar = 1