sim.date: Simulate a radiocarbon date

View source: R/calibrate.R

sim.dateR Documentation

Simulate a radiocarbon date

Description

Simulate a radiocarbon date based on a calendar age (cal BP or BC/AD), the corresponding calibration curve's C14 age, scatter and any offset.

Usage

sim.date(
  x,
  n = 1,
  F.er = 0.002,
  scatter = 1,
  error.multiplier = 1,
  cc.error = TRUE,
  cc = 1,
  postbomb = FALSE,
  glue = 0,
  BCAD = FALSE,
  zero = FALSE,
  thiscurve = NULL,
  cc.dir = NULL,
  rule = 1,
  deltaR = 0,
  deltaSTD = 0,
  round = 0
)

Arguments

x

The calendar age (in cal BP by default)

n

Number of dates to simulate. Note that whereas a real radiocarbon date costs several hundreds of GBP/USD/EUR and takes months to be reported, there's no need to pay or wait while using simulate.date and you could set n to, say, 100 at no extra cost. Defaults to just 1 radiocarbon date.

F.er

The laboratory error of the radiocarbon date, on the F scale. Defaults to 2 permille.

scatter

Randomness of the dates. If scatter > 0, dates are sampled from a normal distribution with standard deviation = scatter * total uncertainty. Set scatter=0 to return the expected radiocarbon age without random variation.

error.multiplier

Multiplier of the laboratory uncertainty (F.er). Some radiocarbon labs have different error multipliers for different materials. Defaults to 1.

cc.error

Whether calibration-curve uncertainties should be included. Defaults to TRUE. Setting this to FALSE treats the calibration curve as known without uncertainty/error and is intended primarily for simulations and sensitivity analyses.

cc

The calibration curve to smooth. Calibration curve for 14C dates: 'cc=1' for IntCal20 (northern hemisphere terrestrial), 'cc=2' for Marine20 (marine), 'cc=3' for SHCal20 (southern hemisphere terrestrial). Alternatively, one can also write, e.g., "IntCal20", "Marine13". One can also make a custom-built calibration curve, e.g. using 'mix.ccurves()', and load this using 'cc=4'. In this case, it is recommended to place the custom calibration curve in its own directory, using 'cc.dir' (see below). Explanations of the numbers are provided in the table footer. If there is more than one cc provided, they will be printed in an extra table column.

postbomb

Use 'postbomb=TRUE' to get a postbomb calibration curve (default 'postbomb=FALSE'). For monthly data, type e.g. 'cc="sh1-2_monthly"'

glue

Glue postbomb and prebomb curves together. Defaults to 0 (none), can be 1 (IntCal20 + NH1), 2 (IntCal20 + NH2), 3 (IntCal20 + NH3), 4 (SHCal20 + SH1-2) or 5 (SHCal20 + SH3). Note that this will override the value of cc.

BCAD

Which calendar scale to use. Defaults to cal BP, BCAD=FALSE. For the BCAD scale, BC ages are negative.

zero

Whether or not zero BC/AD should be included if using BCAD=TRUE. Defaults to zero=FALSE.

thiscurve

As an alternative to providing cc and/or postbomb, the data of a specific curve can be provided (3 columns: cal BP, C14 age, error). Defaults to c().

cc.dir

Directory of the calibration curves. Defaults to where the package's files are stored (system.file), but can be set to, e.g., 'cc.dir="ccurves"'.

rule

Approximation rule for finding the calibration curve's C14 age.

deltaR

Age offset (e.g. for marine samples). If present, the age offset will be simulated as a normal distribution, deltaR +-deltaSTD.

deltaSTD

Uncertainty of the age offset (1 standard deviation). If present, the age offset will be simulated as a normal distribution, deltaR +-deltaSTD.

round

Rounding for the output. Defaults to 0 decimals. To round to the year, use round=0, for the nearest decade, use round=-1, for centuries use round=-2, for near-monthly resolution use round=1, and so on. Set to round=Inf to retrieve all digits.

Details

The calibration curve is queried at the requested cal BP age(s). Laboratory uncertainty, calibration-curve uncertainty and any offset uncertainty are combined in quadrature.

Value

The simulated C14 age and error

Author(s)

Maarten Blaauw

Examples

 sim.date(900, 5, BCAD=TRUE)

rice documentation built on Aug. 19, 2026, 5:07 p.m.