Last data update: 2014.03.03

R: Fast radiocarbon calibration
BchronCalibrateR Documentation

Fast radiocarbon calibration

Description

A fast function for calibrating large numbers of radiocarbon dates involving multiple calibration curves

Usage

BchronCalibrate(ages, ageSds, calCurves, ids = NULL, positions = NULL,
pathToCalCurves = system.file('data',package = "Bchron"),
eps = 1e-05, dfs = rep(100, length(ages)))

Arguments

ages

A vector of ages (most likely 14C)

ageSds

A vector of 1-sigma values for the ages given above

calCurves

A vector of values containing either 'intcal13', 'shcal13', 'marine13', or 'normal'. Should be the same length the number of ages supplied. Non-standard calibration curves can be used provided they are supplied in the same format as those previously mentioned and are placed in the same directory. Normal indicates a normally-distributed (non-14C) age.

ids

(optional) ID names for each age

positions

(optional) Position values (e.g. depths) for each age

pathToCalCurves

(optional) File path to where the calibration curves are located. Defaults to the system directory where the 3 standard calibration curves are stored.

eps

(optional) Cut-off point for density calculation. A value of eps>0 removes ages from the output which have negligible probability density

dfs

(optional) Degrees-of-freedom values for the t-distribution associated with the calibration calculation. A large value indicates Gaussian distributions assumed for the 14C ages

Details

This function provides a direct numerical integration strategy for computing calibrated radiocarbon ages. The steps for each 14C age are approximately as follows: 1) Create a grid of ages covering the range of the calibration curve 2) Calculate the probability of each age according to the 14C age, the standard deviation supplied and the calibration curve 3) Normalise the probabilities so that they sum to 1 4) Remove any probabilities that are less than the value given for eps Multiple calibration curves can be specified so that each 14C age can have a different curve. For ages that are not 14C, use the 'normal' calibration curve which treats the ages as normally distributed with given standard deviation

Value

A list of lists where each element corresponds to a single age. Each element contains:

ages

The original age supplied

ageSDs

The original age standard deviation supplied

positions

The position of the age (usually the depth)

calCurves

The calibration curve used for that age

ageGrid

A grid of age values over which the density was created

densities

A vector of probability values indicating the probability value for each element in ageGrid

ageLab

The label given to the age variable

positionLab

The label given to the position variable

Author(s)

Andrew Parnell <andrew.parnell@ucd.ie>

References

Forthcoming!

See Also

Bchronology, BchronRSL, BchronDensity, BchronDensityFast, CreateCalCurve

Examples

# Calibrate a single age
ages1 = BchronCalibrate(ages=11553,ageSds=230,calCurves='intcal13',ids='Date-1')
summary(ages1)
plot(ages1)

# Calibrate multiple ages with different calibration curves
ages2 = BchronCalibrate(ages=c(3445,11553,7456),ageSds=c(50,230,110),
calCurves=c('intcal13','intcal13','shcal13'))
summary(ages2)
plot(ages2)

# Calibrate multiple ages with multiple calibration curves and including depth
ages3 = BchronCalibrate(ages=c(3445,11553),ageSds=c(50,230),positions=c(100,150),
calCurves=c('intcal13','normal'))
summary(ages3)
plot(ages3,withDepths=TRUE)

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(Bchron)
Loading required package: inline
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/Bchron/BchronCalibrate.Rd_%03d_medium.png", width=480, height=480)
> ### Name: BchronCalibrate
> ### Title: Fast radiocarbon calibration
> ### Aliases: BchronCalibrate
> 
> ### ** Examples
> 
> # Calibrate a single age
> ages1 = BchronCalibrate(ages=11553,ageSds=230,calCurves='intcal13',ids='Date-1')
> summary(ages1)
Highest density regions for Date-1 
       [,1]    [,2]  [,3]    [,4]
99% 12799.0 14026.0    NA      NA
95% 12958.0 13858.5 13893 13926.2
50% 13248.5 13550.4    NA      NA

> plot(ages1)
> 
> # Calibrate multiple ages with different calibration curves
> ages2 = BchronCalibrate(ages=c(3445,11553,7456),ageSds=c(50,230,110),
+ calCurves=c('intcal13','intcal13','shcal13'))
> summary(ages2)
Highest density regions for date1 
      [,1]   [,2] [,3]   [,4]   [,5]   [,6]
99% 3564.7 3867.0   NA     NA     NA     NA
95% 3590.0 3833.7   NA     NA     NA     NA
50% 3641.0 3671.0 3678 3723.3 3796.3 3816.6

Highest density regions for date2 
       [,1]    [,2]    [,3]  [,4]
99% 12799.0 14026.0      NA    NA
95% 12950.4 13864.6 13885.3 13930
50% 13246.1 13551.0      NA    NA

Highest density regions for date3 
      [,1]   [,2] [,3]   [,4]
99% 7953.3 8457.0 8499 8507.4
95% 8015.0 8403.2   NA     NA
50% 8178.9 8325.0   NA     NA

> plot(ages2)
> 
> # Calibrate multiple ages with multiple calibration curves and including depth
> ages3 = BchronCalibrate(ages=c(3445,11553),ageSds=c(50,230),positions=c(100,150),
+ calCurves=c('intcal13','normal'))
> summary(ages3)
Highest density regions for date1 
      [,1]   [,2]   [,3]   [,4]   [,5]   [,6]
99% 3562.5 3875.0     NA     NA     NA     NA
95% 3589.0 3834.0     NA     NA     NA     NA
50% 3641.0 3670.7 3678.2 3723.2 3796.4 3816.5

Highest density regions for date2 
     [,1]  [,2]
99% 10955 12151
95% 11091 12015
50% 11402 11704

> plot(ages3,withDepths=TRUE)
There were 12 warnings (use warnings() to see them)
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>