Movatterモバイル変換


[0]ホーム

URL:


Introduction to the rice package

1 Introduction

Radiocarbon dating requires a range of calculations, for examplecalibration1234, translations between pMC,\(\text{F}^{14}\text{C}\),\(^{14}\text{C}\) age and\(\Delta^{14}\text{C}\), and assessing theimpacts of contamination. This package provides functions to do so inR.

2 Installation

On first usage of the package, it has to be installed:

install.packages('rice')

The companion data package ‘rintcal’ which has the radiocarboncalibration curves will be installed if it isn’t already. New versionsof R packages appear regularly, so please re-issue the above commandregularly to remain up-to-date, or use:

update.packages()

To obtain access to the calibration curves and radiocarbon functions,first the package has to be loaded:

library(rice)
## Loading required package: rintcal

3 Radiocarbon

C-14, or radiocarbon, is a radioactive isotope that decays with ahalf-life of around 5730 years, and which is commonly used to dateorganic material back to around 50,000 years ago. Given a startingconcentration\(A_0\) of some organicmaterial that we want to find the age of, the remaining amount ofradiocarbon at time\(t\) can be foundas\(A_t = A_0 e^{-\lambda t}\):

howmuchC14(0)
## 1 mg carbon contains 5.02e+19 C atoms
## C14 atoms remaining at 0 cal BP (F=0.976): 5.76e+07
## 19.1 C-14 atoms in the sample will decay each day
## For a 1 mg AMS target, assuming a 100% efficiency, 1919097 particles would be counted per minute, or 31985 per second
howmuchC14(55e3)
## 1 mg carbon contains 5.02e+19 C atoms
## C14 atoms remaining at 55000 cal BP (F=0.002): 1.15e+05
## 0.038 C-14 atoms in the sample will decay each day
## For a 1 mg AMS target, assuming a 100% efficiency, 3848 particles would be counted per minute, or 64 per second
x<-seq(0,55e3,length=100)# a sequence of agesy<-sapply(x,function(x)howmuchC14(x,talk=FALSE))plot(x, y,type="l",xlab="time (cal BP)",ylab="C-14 remaining")

Radiocarbon laboratories correct their measurements for fractionation(to -25 ‰ by default) and for background measurements before they arereported. These calculations can be seen here:

adjust.fractionation(9000,-17)# the sample's d13C was measured at -17
## [1] 9131.286
adjust.background(9000,50,48000,200)# a well-oiled machine, with backgrounds of F=0.00254
##        C14   C14.er## 1 9042.384 50.73721

4 Calibration curves

C-14 ages are not exactly similar to calendar ages, owing to pastfluctuations in atmospheric C-14 concentrations. We need calibrationcurves to correct for these fluctuations. The calibration curves can beplotted (we’re adding a 1:1 line to see how C14 ages deviate fromcalendar ages over time):

draw.ccurve()grid()abline(0,1,lty=2)

Or, comparing two calibration curves, on the BC/AD scale:

draw.ccurve(1000,2020,BCAD=TRUE,cc2='marine20',add.yaxis=TRUE)

Or zooming in to between AD 1600 and 2000:

draw.ccurve(1600,1950,BCAD=TRUE)

Note the wiggles, or recurring C-14 ages? Calibration curves such asIntCal20 come with 3 columns: cal BP (\(\theta\)), the corresponding C-14 ages(\(\mu\)), and their errors (\(\sigma\)). Whereas each cal BP or BC/ADyear has a single\(\mu\) and\(\sigma\), owing to wiggles in thecalibration curves, any single\(\mu\)will often have multiple\(\theta\)’s:

BCADtoC14(1694)# gives 129 +- 9 14C BP
##   C14 er## 1 129  9
C14toBCAD(129)# the curve crosses 129 14C BP 5 times
## [1] 1917.000 1876.500 1873.022 1810.667 1725.500 1693.995

Let’s add these values to the previous plot:

draw.ccurve(1600,1950,BCAD=TRUE)abline(h=BCADtoC14(1694),lty=3)abline(v=C14toBCAD(129),lty=3)

Atmospheric nuclear tests around AD 1950-1964 caused a hugehuman-made C-14 peak (resulting in highly negative C-14 ages):

draw.ccurve(1600,2020,BCAD=TRUE,cc2='nh1')

Since the postbomb curve dwarfs the IntCal20 curve, we could alsoplot both on separate vertical axes:

draw.ccurve(1600,2020,BCAD=TRUE,cc2='nh1',add.yaxis=TRUE)

The calibration curves can also be plotted in the timescales of F14C,pMC or\(\Delta{14}\text{C}\) (seebelow), e.g.:

draw.ccurve(50000,35000,timescale="D")

Some older calibration curves are also available for historicalinterest, e.g.:

draw.ccurve(cc1="stuiver_suess_1966",cc2="pearson_stuiver_1986")

5 Timescales

This package provides functions to translate values between theradiocarbon-relevant timescales of cal BP (calendar years before AD1950), BC/AD (here we mean cal BC/AD, but shorten this to BC/AD), b2k(years before AD 2000, popular in the ice core community), C14,\(\text{F} ^{14} \text{C}\), pMC and\(\Delta ^{14} \text{C}\). The followingTable lists the available functions:

from\tocalBPBCADb2kC14F14CpMCDelta14C
calBP-calBPtoBCADcalBPtob2kcalBPtoC14calBPtoF14CcalBPtopMCcalBPtoDelta14C
BCADBCADtocalBP-BCADtob2kBCADtoC14BCADtoF14CBCADtopMCBCADtoDelta14C
b2kb2ktocalBPb2ktoBCAD-b2ktoC14b2ktoF14Cb2ktopMCb2ktoDelta14C
C14C14tocalBPC14toBCADC14tob2k-C14toF14CC14topMCC14toDelta14C
F14CNANANAF14CtoC14-F14CtopMCF14CtoDelta14C
pMCNANANApMCtoC14pMCtoF14C-pMCtoDelta14C
Delta14CNANANADelta14CtoC14Delta14CtoF14CDelta14CtopMC-

As an example of the above functions, the IntCal20 C14 age and errorbelonging to one or more cal BP or cal BCAD ages can be found(interpolating linearly where necessary):

calBPtoC14(10.5)
##   C14 er## 1 168 11
BCADtoC14(1940:1950)
##    C14 er## 1  170 11## 2  174 11## 3  178 11## 4  181 11## 5  185 11## 6  188 11## 7  190 11## 8  193 11## 9  195 11## 10 197 11## 11 199 11

To translate between cal BC/AD and cal BP ages, we can use (the lastexample avoids 0 BC/AD, since some calendars do not include zero):

BCADtocalBP(2025)
## [1] -75
BCADtocalBP(-1,zero=TRUE)
## [1] 1951
BCADtocalBP(-1,zero=FALSE)
## [1] 1950

Delta14C (\(\Delta\)14C,a proxy for atmospheric14C concentration att calBP) can be transferred to F14C, and the other way around:

Delta14CtoF14C(152,t=4000)
##        F14C## 1 0.7100834
F14CtoDelta14C(0.71,t=4000)
##   Delta14C## 1 151.8647

This can also be done with C14 ages:

C14toDelta14C(152,t=4000)
##   Delta14C## 1 591.9353
Delta14CtoC14(592,t=4000)
## [1] 151.6734

Although ages are most often expressed as 14C BP, radiocarbon labscalculate these ages from the measured F14C values. Since 14C BP = -8033* ln(F), the distributions of especially older 14C ages and those withlarge errors become skewed, sometimes with their tails extending intoinfinite ages:

draw.CF(50000,3000)


Here’s a function to transform values between multiple timescales andvisualise them:

fromto(100,"calBP")
## 100 cal BP equals 1850 cal BC/AD, 124 14C BP, 0.98 F14C, 98.47 pMC, -3.33 Delta14C (cc=1)


These functions can be used to investigate\(\Delta^{14}\text{C}\) over time:

x<-seq(0,55e3,length=1e3)cc<-calBPtoC14(x)Dcc<-C14toDelta14C(cc[,1], cc[,2], x)par(mar=c(4,3,1,3),bty="l")plot(x/1e3, Dcc[,1]+Dcc[,2],type="l",xlab="kcal BP",ylab="")mtext(expression(paste(Delta,""^{14},"C")),2,1.7)lines(x/1e3, Dcc[,1]-Dcc[,2])

We can also use draw.ccurve to plot the IntCal20 curve as both C-14years and\(\Delta^{14}\text{C}\):

draw.ccurve(cc2="IntCal20",timescale2="D",add.yaxis=TRUE)

6 Pooling dates

Sometimes, the same material is measured using multiple radiocarbondates. If we can be sure that the dated material stems from one singleage in time (e.g., multiple dates on the same single bone, or perhapsthe cereal grains within one bowl which could be assumed to all stemfrom the same season), then we can check to which degree the dates agreeusing a Chi2-test (Ward & Wilson 1978)5. If they do agree,then a pooled mean can be calculated. For example, take the Shroud ofTurin, which was dated multiple times in three different labs:

data(shroud)calibrate.table(shroud$y, shroud$er, shroud$ID)

Lab ID

14C BP (± sd)

95% range (cal BP)

95% hpd ranges (cal BP)

AA-3367.1

591 ± 30

644 – 540

570 – 540 (25.8%)
648 – 582 (69.2%)

AA-3367.2

690 ± 35

677 – 563

593 – 560 (32.3%)
680 – 629 (62.7%)

AA-3367.3

606 ± 41

654 – 539

655 – 540 (95%)

AA-3367.4

701 ± 33

682 – 566

590 – 562 (24.1%)
683 – 633 (70.9%)

Ox-2575.1

795 ± 65

889 – 610

583 – 570 (1.5%)
802 – 647 (87.2%)
824 – 810 (1.1%)
854 – 849 (0.4%)
902 – 867 (4.8%)

Ox-2575.2

730 ± 45

725 – 569

589 – 563 (11.9%)
730 – 640 (83.1%)

Ox-2575.3

745 ± 55

766 – 570

591 – 561 (9.4%)
747 – 630 (83.8%)
771 – 759 (1.8%)

ETH-3883.1

733 ± 61

766 – 564

599 – 556 (16.1%)
748 – 624 (77.1%)
772 – 758 (1.8%)

ETH-3883.2

722 ± 56

734 – 563

601 – 555 (20.1%)
733 – 624 (74.9%)

ETH-3883.3

635 ± 57

669 – 539

672 – 542 (95%)

ETH-3883.4

639 ± 45

665 – 549

668 – 552 (95%)

ETH-3883.5

679 ± 51

695 – 556

684 – 553 (95%)

Calibration curve: IntCal20 (Reimer et al. 2020)

Let’s check if we can pool the dates:

pool(shroud$y,shroud$er)
## ! Scatter too large to calculate the pooled mean## Chisq value: 20.697, p-value 0.037 < 0.05
Zu<-grep("ETH", shroud$ID)# Zurich lab onlypool(shroud$y[Zu],shroud$er[Zu])
## pooled mean: 676.1 +- 23.7## Chi2: 2.745, p-value 0.601 (>0.05, OK)
## [1] 676.1406  23.7443

Then the weighted mean can be calculated, with the error taken as thelargest of the weighted uncertainty and the standard deviation:

weighted_means(shroud$y[Zu],shroud$er[Zu])
## wmean 676.1, error is max of weighted uncertainty (23.7) & sdev (44.3): 44.3
## [1] 676.1  44.3

If it can indeed be safely assumed that all dates stem from the same(unknown) calendar year, then the age distribution of that single yearcan be plotted together with the individual calibrated ages:

as.one(shroud$y,shroud$er)

## point estimates (mean, median, mode and midpoint): 630, 652, 653 & 618 cal BP
## 95% hpd ranges: 583-570 (29.5%), 667-647 (65.5%)

It would however often be much safer to assume that the multipledates were deposited over not just one calendar year but rather over aperiod, e.g., over 50 years. To do so, a moving bin is made, and foreach bin placement it is checked how much of the calibrated distributionof each date fits within that bin. Here is an example, using a bin widthof 100 years, moving at 25 year steps (the top value indicates thataround 660 cal BP, a total of around 4-5 dates fit within the 100-yearbin):

as.bin(shroud$y,shroud$er,100,move.by=25)

## point estimates (mean, median, mode and midpoint): 641, 627, 625 & 636 cal BP
## 95% hpd ranges: 757-516 (95%)

The spread of multiple calibrated dates can be visualised andsummarised:

spread(shroud$y,shroud$er)
## average spread: 65.8 calendar years (median 56.7)## 95% range: 2.3 to 187.6

The time-span between two dates can be calculated (by samplingn pairs of random ages from both calibrated distributions andplotting the time-span for each pair):

span(700,20,750,20)
## average span: 31.2 calendar years (median 18.4)## 95% range: -0.4 to 112.5

We can assess to what degree two calibrated distributions areoverlapping (as the minimum calibrated height for each calendar year ina range). For example, imagine two dates from the same archaeologicallayer, a twig (3820 ± 40 C-14 BP, requiring calibration with IntCal20)and a marine shell (4430 ± 40 C-14 BP, requiring Marine20, with aregional marine offset of 90 ± 25). By what percentage do the twocalibrated distributions overlap?

y<-c(3820,4430+90)er<-c(40,sqrt(40^2+25^2))cc<-c(1,2)overlap(y, er,cc=cc)

## overlap: 10.7%

7 Contamination

To calculate the effect of contamination on radiocarbon ages,e.g. what age would be observed if material with a “true” radiocarbonage of 5000 ± 2014C BP would be contaminated with 10% (± 0%)of modern carbon (F14C=1)?

contaminate(5000,20,10,0,1)

## True age in F14C: 0.53664 +- 0.00134
## Observed F14C: (0.9*0.53664) + (0.1*1) = 0.58238 +- 0
## Observed C14 age: 4342.9 +- 0

Or imagine that you measured a dinosaur bone, dating to far beyondthe limit of radiocarbon dating, and the sample is very clean as itcontains only 0.5% ± 0.1% modern contamination:

contaminate(66e6,1e6,0.5,0.1,1)

## True age in F14C: 0 +- 0
## Observed F14C: (0.995*0) + (0.005*1) = 0.005 +- 0.001
## Observed C14 age: 42724 +- 1626.1

The other way round, e.g., inferring what would happen to an observedage if its assumed 10% modern contamination were to be removed:

clean(9000,100,10)

## Observed age as F14C: 0.32616 +- 0.00409
## True F14C: (0.9*0.32616) - (0.1*1) = 0.25128 +- 0.00456
## True C14 age: 11096.6 +- 145.9

We can also calculate the amount of contamination, or muck, requiredto ‘explain away’ certain ages. For example, one of the measurements ofthe Shroud of Turin dates to 591 ± 30 C14 BP. How much moderncontamination would have to be inferred for the material to really dateto, say, AD 40?

muck(591,30,BCADtoC14(40)[,1],0,1)

## Observed age: 591+-30 C14 BP (0.929+-0.003 F14C)
## Target age: 1970 C14 BP (0.783 F14C)
## Calculation: (0.929-0.783)/(1 - 0.783) = 0.67387
## Contamination required: 67.4+-1.7%

So we’d require the sample to have been contaminated by 67% moderncarbon to still date to around AD 40. But what if the sample had beenrepaired in, say, AD 1400, thus adding material of annot-entirely-modern F14C value (i.e., taking into account both theatmospheric C-14 concentrations in AD 1400 and the fact that some of theC14 will have decayed since then)?

perFaith<-BCADtoC14(40)repairF<-BCADtoF14C(1400)muck(591,30, perFaith[,1], perFaith[,2], repairF[,1], repairF[,2])

## Observed age: 591+-30 C14 BP (0.929+-0.003 F14C)
## Target age: 1970 C14 BP (0.783 F14C)
## Calculation: (0.929-0.783)/(0.932 - 0.783) = 0.97511
## Contamination required: 97.5+-1.8%

This means that the dated sample would have to consist almostentirely of Medieval age material - which is exactly what was found byDamon et al. (1989)6.

What if we had a sample with a known percentage of contamination, andwanted to know the required activity (F14C) of said contamination toexplain away a date? This can be done by providing the percentagecontamination (e.g., 10%):

muck(500,20,600,25,perc.contam=10)

## Observed age: 500+-20 C14 BP (0.94+-0.002 F14C)
## Target age: 600 C14 BP (0.928 F14C)
## Calculation: 0.928 + ((0.94-0.928) / 0.1) = 1.044
## F of contamination: 1.044+-0.035

The effect of different levels of contamination can bevisualised:

real.14C<-seq(0,50e3,length=200)contam<-seq(0,10,length=101)# 0 to 10% contaminationcontam.col<-rainbow(length(contam))plot(0,type="n",xlim=c(0,55e3),xlab="real 14C age",ylim=range(real.14C),ylab="observed 14C age")for (iin1:length(contam)) {  observed<-contaminate(real.14C,0, contam[i],0,1,talk=FALSE,MC=FALSE)lines(real.14C, observed[,1],col = contam.col[i])}

If that is too much code for you, try this function instead:

draw.contamination()

8 Fractions

Sometimes, one needs to estimate a missing radiocarbon age from asample which has C14 dates on both the entire sample and on fractions,but where one of the samples was too small to be dated. This can be usedin for example soils separated into size fractions, or samples datedusing both bulk and humic/humin fractions, where one of the samplesturns out to be too small to be dated. This equation requires the bulkage, the ages of the dated fractions, and the carbon contents andweights of all fractions.

Cs<-c(.02, .05, .03, .04)# carbon contents of each fractionwghts<-c(5,4,2, .5)# weights for all fractions, e.g., in mgages<-c(130,130,130,NA)# ages of all fractions. The unmeasured one is NAerrors<-c(10,12,10,NA)# errors, unmeasured is NAfractions(150,20, Cs, wghts, ages, errors)# assuming a bulk age of 150 +- 20 C14 BP
## estimated C14 age of fraction 4: 518.8 +- 436.7

The above function can also be used to find the expected age of anentire sample, given the fractions and their ages - please type?fractions for more detail.

9 Calibration

Now on to calibration of radiocarbon dates. We can obtain thecalibrated probability distributions from radiocarbon dates, e.g., oneof 130 ± 10 C14 BP:

calib.130<-caldist(130,10,BCAD=TRUE)plot(calib.130,type="l")

It is also possible to find the likelihood of a single calendar yearfor our radiocarbon age, e.g., 145 cal BP:

l.calib(145,130,10)
## [1] 0.0052052

To sample n=10 random values from a calibrated distribution (wherethe probability of a year being sampled is proportional to itscalibrated height):

dice<-r.calib(100,130,10)plot(density(dice))rug(dice)

For reporting purposes, calibrated dates are often reduced to their95% highest posterior density (hpd) ranges (please report all, not justyour favourite one!):

hpd(calib.130)
##   from   to perc## 1 1710 1684 13.0## 2 1733 1719  8.1## 3 1758 1758  0.1## 4 1824 1803  8.3## 5 1892 1832 50.8## 6 1928 1905 14.8

Additionally, calibrated dates are often reduced to single pointestimates. Note however how poor representations they are of the entirecalibrated distribution!

calib.2450<-caldist(2450,20)plot(calib.2450,type="l")points.2450<-point.estimates(calib.2450)points.2450
## weighted mean        median          mode      midpoint ##        2539.9        2512.2        2666.0        2531.5
abline(v=points.2450,col=1:4,lty=2)

Want a plot of the radiocarbon and calibrated distributions, togetherwith their hpd ranges?

calibrate(2450,40)

Sometimes one would want to smooth a calibration curve to take intoaccount the fact that material has accumulated over a certain time(e.g., a tree, or peat). To do so, a calibration curve can be smoothedto produce a tailor-made calibration curve, after which this one is usedto calibrate the date:

mycurve<-smooth.ccurve(smooth=50)calibrate(2450,40,thiscurve=mycurve)

Calibrating ‘young’ radiocarbon dates (close to 0 C14 BP) can causean error, because a bomb curve might be required to capture the youngestages. Do not worry, there is an option to avoid that error:

try(calibrate(130,30))
## Error in calibrate(130, 30) : ##   This appears to be a postbomb age (or is close to being one). Please provide a postbomb curve
calibrate(130,30,bombalert=FALSE)
## Date falls partly beyond calibration curve and will be truncated!

It is also possible to analyse the calibrated probabilitydistributions, e.g. what is the probability (between 0 and 1) that thedate stems from material that is of the age of 150 cal BP or younger? Orthat it is older than that age?

younger(150,130,10)
## [1] 0.7669044
older(150,130,10)
## [1] 0.2330956

Or if you wish to calculate the probability covered between two agepoints (e.g., here between 300 and 150 cal BP):

p.range(300,150,130,10)
## [1] 0.2330956

The probabilities reported byp.range should be similarto those reported by thehpd function mentioned earlier.Any discrepancies can be explained by rounding errors in thecalculations (e.g., hpd’s settings ofevery,age.round andprob.round).

At times there could be a lag in the date, for example if materialhas accumulated over decades. We can calibrate a date and then add alag, by adding or subtracting either a normal distribution or a gammaone:

push.normal(2450,40,400,20)

##   from   to perc## 1 3110 2758   95

10 Marine offsets

Dates on marine material will often have to be calibrated with theMarine20 calibration curve7, and many coastal locations will have anadditional regional reservoir offset (deltaR) (Reimer and Reimer 2006)8. Theon-line database athttp://calib.org/marine/ is very useful for this; itfeatures the radiocarbon ages and deltaR of many shells of knowncollection date. The data from this database were downloaded (in August2024) and can be queried. For example, a map can be drawn with all shelldata within certain coordinates:

myshells<-map.shells(S=54,W=-8,N=61,E=0)# the northern part of the UK

If you don’t have the R package ‘rnaturalearth’ installed, you willbe suggested to install it if possible, because the resulting maps willlook much nicer.

The output can also be queried:

head(myshells)
##       lon   lat  no taxonN   dR dSTD collected res res.error C14 er       lab## 428 -3.15 55.97 524    146 -141   57      1851 386        58 511 57  SRR-1818## 431 -5.00 54.17 527    125 -180   47      1890 334        47 444 47 SRR-1821a## 432 -5.00 54.17 528    125 -129   63      1890 385        64 495 63 SRR-1821b## 433 -6.00 55.83 529     48 -224   46      1890 290        46 400 46 SRR-1822a## 434 -6.00 55.83 530     48 -233   52      1890 281        52 391 52 SRR-1822b## 435 -5.33 57.83 531     90 -171   29      1900 346        30 442 29  SRR-357a##                                                                                                                                                                                                                                                        ref## 428 Harkness, D D,, 1983. The extent of the natural 14C deficiency in the coastal environment of the United Kingdom,. Journal of the European Study Group on Physical, Chemical and Mathematical Techniques Applied to Archaeology PACT 8 (IV.9):351-364. ## 431 Harkness, D D,, 1983. The extent of the natural 14C deficiency in the coastal environment of the United Kingdom,. Journal of the European Study Group on Physical, Chemical and Mathematical Techniques Applied to Archaeology PACT 8 (IV.9):351-364. ## 432 Harkness, D D,, 1983. The extent of the natural 14C deficiency in the coastal environment of the United Kingdom,. Journal of the European Study Group on Physical, Chemical and Mathematical Techniques Applied to Archaeology PACT 8 (IV.9):351-364. ## 433 Harkness, D D,, 1983. The extent of the natural 14C deficiency in the coastal environment of the United Kingdom,. Journal of the European Study Group on Physical, Chemical and Mathematical Techniques Applied to Archaeology PACT 8 (IV.9):351-364. ## 434 Harkness, D D,, 1983. The extent of the natural 14C deficiency in the coastal environment of the United Kingdom,. Journal of the European Study Group on Physical, Chemical and Mathematical Techniques Applied to Archaeology PACT 8 (IV.9):351-364. ## 435 Harkness, D D,, 1983. The extent of the natural 14C deficiency in the coastal environment of the United Kingdom,. Journal of the European Study Group on Physical, Chemical and Mathematical Techniques Applied to Archaeology PACT 8 (IV.9):351-364. ##                     taxon    feeding## 428 Crassostrea virginica suspension## 431 Crassostrea virginica suspension## 432 Crassostrea virginica suspension## 433 Crassostrea virginica suspension## 434 Crassostrea virginica suspension## 435 Crassostrea virginica suspension
shells.mean(myshells)
## wmean -143.4, error is max of weighted uncertainty (5.3) & sdev (58.3): 58.3

## [1] -143.4   58.3

You can also extract say the 20 shells closest to a coordinate, e.g.,120 East and 10 North:

myshells<-find.shells(120,10,20)

shells.mean(myshells,distance=TRUE)
## wmean -147, error is max of weighted uncertainty (7.2) & sdev (39.1): 39.1

## [1] -147.0   39.1

Instead of a static map, forfind.shells andmap.shells you can also request an interactive, browsablemap, which will open in your Internet browser:

find.shells(120,10,50,browse=TRUE)

11 Multiplecalibrations

It is also possible to draw multiple calibrated distributions:

set.seed(123)dates<-sort(sample(500:2500,5))errors<- .05*datesdepths<-1:length(dates)my.labels<-c("my","very","own","simulated","dates")draw.dates(dates, errors, depths,BCAD=TRUE,labels=my.labels,age.lim=c(0,1800))

or add them to an existing plot:

plot(250*1:5,5:1,xlim=c(0,1800),ylim=c(5,0),xlab="AD",ylab="dates")draw.dates(dates, errors, depths,BCAD=TRUE,add=TRUE,labels=my.labels,mirror=FALSE)

or get creative (inspired by Jocelyn Bell Burnell9, Joy Division10 and theHallstatt Plateau11):

par(bg="black",mar=rep(1,4))n<-50;set.seed(1)draw.dates(rnorm(n,2450,30),rep(25, n),1:n,mirror=FALSE,draw.base=FALSE,draw.hpd=FALSE,col="white",threshold=1e-28,age.lim=c(2250,2800),up=TRUE,peak=30)


  1. Stuiver, R., Polach, H.A., 1977. Discussion: reportingof 14C data.Radiocarbon 19, 355-363http://dx.doi.org/10.1017/S0033822200003672↩︎

  2. Reimer, P.J., Brown, T.A., Reimer, R.W., 2004.Discussion: reporting and calibration of post-bomb 14C Data.Radiocarbon 46, 1299-1304http://dx.doi.org/10.1017/S0033822200033154↩︎

  3. Millard, R., 2014. Conventions for reporting radiocarbondeterminations.Radiocarbon 56, 555-559http://dx.doi.org/10.2458/56.17455↩︎

  4. Reimer, P.J., et al., 2020. The IntCal20 NorthernHemisphere radiocarbon age calibration curve (0-55 cal kBP).Radiocarbon 62, 725-757http://dx.doi.org/10.1017/S0033822200032999↩︎

  5. Ward, G.K., Wilson, S., 1978. Procedures for comparingand combining radiocarbon age determinations: A critique.Archaeometry 20, 19-31http://dx.doi.org/10.1111/j.1475-4754.1978.tb00208.x↩︎

  6. Damon, P., et al., 1989. Radiocarbon dating of theShroud of Turin.Nature 337, 611–615.https://doi.org/10.1038/337611a0↩︎

  7. Heaton, T.J., et al., 2020. Marine20-the marineradiocarbon age calibration curve (0-55,000 cal BP).Radiocarbon 62, 779-820http://dx.doi.org/10.1017/RDC.2020.68↩︎

  8. Reimer, P.J., Reimer, R.W., 2006. A marine reservoircorrection database and on-line interface.Radiocarbon 43,461-463.http://dx.doi.org/10.1017/S0033822200038339↩︎

  9. https://www.cam.ac.uk/stories/journeysofdiscovery-pulsars↩︎

  10. https://www.radiox.co.uk/artists/joy-division/unknown-pleasures-album-cover-meaning/↩︎

  11. https://en.wikipedia.org/wiki/Hallstatt_plateau↩︎


[8]ページ先頭

©2009-2025 Movatter.jp