Rev 70373 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/utils/man/roman.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2016 R Core Team% Distributed under GPL 2 or later\name{roman}\title{Roman Numerals}\alias{as.roman}\alias{.romans}\description{Simple manipulation of (a small set of) integer numbers as roman numerals.}\usage{as.roman(x).romans}\arguments{\item{x}{a numeric or character vector of arabic or roman numerals.}}\details{\code{as.roman} creates objects of class \code{"roman"} which areinternally represented as integers, and have suitable methods forprinting, formatting, subsetting, coercion, etc, see\code{\link{methods}(class = "roman")}.Only numbers between 1 and 3899 have a unique representation as romannumbers.\code{.romans} is the basic dictionary, a named \code{\link{character}} vector.}\references{Wikipedia contributors (2006). Roman numerals.Wikipedia, The Free Encyclopedia.\url{https://en.wikipedia.org/w/index.php?title=Roman_numerals&oldid=78252134}.Accessed September 29, 2006.}\examples{## First five roman 'numbers'.(y <- as.roman(1 : 5))## Middle one.y[3]## Current year as a roman number.(y <- as.roman(format(Sys.Date(), "\%Y")))## Today, and 10, 20, 30, and 100 years ago ...y - 10*c(0:3,10)\dontshow{stopifnot(identical(as.character(as.roman("2016") - 10*c(0:3,10)),c("MMXVI", "MMVI", "MCMXCVI", "MCMLXXXVI", "MCMXVI"))) }## mixture of arabic and roman numbers :as.roman(c(NA, 1:3, "", strrep("I", 1:6))) # + NA with a warning for "IIIIII"cc <- c(NA, 1:3, strrep("I", 0:5))(rc <- as.roman(cc)) # two NAs: 0 is not "roman"(ic <- as.integer(rc)) # works automitcally [without an explicit method]## simple consistency checks -- arithmetic when result is in {1,2,..,3899} :stopifnot(identical(rc, as.roman(rc)), # as.roman(.) is "idempotent"identical(rc + rc + (3*rc), rc*5),identical(ic, c(NA, 1:3, NA, 1:5)),identical(as.integer(5*rc), 5L*ic),identical(as.numeric(rc), as.numeric(ic)),identical(as.list(rc), as.list(ic)))}\keyword{arith}